任何 JavaScript
书上都会教你这样创建 Ajax
请求。
1
2
3
4
5
6
7
8
9
|
var XmlHttp;
if(window.ActiveXObject){
XmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
}else if(window.XMLHttpRequest){
XmlHttp = new XMLHttpRequest();
}
XmlHttp.open("POST", "getlist.php", true);
XmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
XmlHttp.send("type=" + reqType);
|
但是我一直这样使用:
1
2
3
4
5
|
// ...
XmlHttp.open("POST", "getlist.php", false);
// ...
var response = XmlHttp.responseText;
// #actions...
|
这样是同步请求,就是说在等待的时候浏览器相当于冻住了,你无法执行其他他的操作。这就违背了 Ajax
异步的本意。我直到一个月前才理解了 Ajax
异步请求的基础。其实就是像下面这样。
1
2
3
4
5
6
7
8
9
|
// ...
XmlHttp.open("POST", "getlist.php", true);
// ...
XmlHttp.onreadystatechange = function(){
if(XmlHttp.readyState == 4){
// Actions here...
}
}
// ...
|