Ajax基础
下面是一些关于ASP.NET_Ajax的一些基础知识
所有Web编程,无论服务器端技术是什么都逃脱不了HTTP
考虑现在风行的Ajax技术,那么我们可以说服务器采用什么技术以显得不那么重要,当然Microsoft一如既往的为我们提供了方便.
HTTP分两部份:请求和响应
HTTP请求格式如下:
<request-line> //请求行
<headers> //头部信息
<blank line> //空行
[<request-body>] //请求主体
创建XHR对象:
IE中:var oXHR = new ActiveXObject(“Microsoft.XMLHttp”);
其它:var oXmlHttp = new XMLHttpRequest();
//通用的XHR创建
function createXMLHttp() {
if (typeof XMLHttpRequest != "undefined") {
return new XMLHttpRequest();
} else if (window.ActiveXObject) {
var aVersions = [ "MSXML2.XMLHttp.5.0",
"MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0",
"MSXML2.XMLHttp","Microsoft.XMLHttp"
];
for (var i = 0; i < aVersions.length; i++) {
try {
var oXmlHttp = new ActiveXObject(aVersions[i]);
return oXmlHttp;
} catch (oError) {
//Do nothing
}
}
}
throw new Error("XMLHttp object could be created.");
}
使用zXML JS库帮助创建
XHR的open方法的三个参数:
Request Type: 请求类型 GET or POST URL: A string indicating
URL :说明发送请求的URL
Async: 说明是否为异步模式布尔值
var oXmlHttp = zXmlHttp.createRequest();
oXmlHttp.open("get", "info.txt", true);
XHR对象的readyState属性
0 (Uninitialized): 对象已创建但还没有调用open()方法
1 (Loading): open() 方法已调用但,请求还没有发送
2 (Loaded): 请求已发送
3 (Interactive). 已经收到部分响应
4 (Complete): 所有数据已收到,连接已经关闭
每当readyState 发生变化时就激发XHR对象的onreadystatechange 最后发送:oXmlHttp.send(null);
Ajax模式
通信控制模式
上传或下载时你可能选择部分上传或下载问题是怎样选择最佳时机
预先获取(predivtive fetch):尽量预测用户的下一步动作
Demo:Communication Control Patterns\Predictive Fetch
提交了流:表单增量验证示例,字段增量验证示例
Communication Control Patterns\Submission Throttling