jesse-win

来源:互联网 发布:平安证券 招聘 程序员 编辑:程序博客网 时间:2024/05/29 14:17

======================================================
注:本文源代码点此下载
======================================================

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^)/
原创粉丝点击