======================================================
注:本文源代码点此下载
======================================================
ajax的异同步性有open()最后一个参数决定,true代表异步,false代表同步。换句话说同步是客户机请求服务器响应,感觉让人比较慢(缺乏交互性),如果是处理大量的服务器处理,那么等待的时间可能很长。异步请求代表不用等待服务器响应,应用程序继续运行,这样响应迅速,交互性强,感觉就快多了。服务器完成了请求,onreadystatechange就要起作用了,该属性允许指定的回调函数
例子:
function showcustomer(str) {
var xmlhttp;
if (str=="") {
document.getelementbyid("txthint").innerhtml="";
return;
}
if (window.xmlhttprequest) {
xmlhttp=new xmlhttprequest();
}
else {
xmlhttp=new activexobject("microsoft.xmlhttp");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readystate==4 && xmlhttp.status==200) {
document.getelementbyid("txthint").innerhtml=xmlhttp.responsetext;
}
}
xmlhttp.open("get","getcustomer.asp?q="+str,true);
xmlhttp.send();
}
代码分析:假如没有xmlhttp.readystate==4会出现什么效果呢?在表单停止弹出之前会出现警告。所以这是请求/响应循环中的一个重要部分
在ajax中的五种就绪状态:
0:请求没有发出(open()调用之前)
1:请求已经建立但还没有发出(send()之前)
2:请求已经发出正在处理之中(通常可以从响应得到内容头部)
3:请求已经处理,响应中通常有部分数据可用,但是服务器没有完成响应
4:响应结束,可以访问服务器响应并使用它
xmlhttp.status:代表状态码
http://zh.wikipedia.org/wiki/http%e7%8a%b6%e6%80%81%e7%a0%81
如果就绪状态是4而且状态码是200,我们就可以处理服务器的数据了
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
本文详细介绍了AJAX异步请求的工作原理及实现方式。解释了如何通过设置open方法的最后一个参数来区分同步与异步请求,展示了具体的JavaScript示例代码,并说明了不同就绪状态的含义。

2876

被折叠的 条评论
为什么被折叠?



