var returnValue = null;
xmlhttp = createXmlHttp();
xmlhttp.onreadystatechange = function() {
if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
if (xmlhttp.responseText == "true") {
returnValue = "true";
}
else {
returnValue = "false";
}
}
};
xmlhttp.open("Post",url,true); //异步传输
xmlhttp.setRequestHeader("If-Modified-Since","0"); //不缓存Ajax
xmlhttp.send(sendStr);
return returnValue;
在异步时才可以用xmlHttpReq.onreadystatechange状态值!下面是异步和同步的不同调用方式:
Java代码
xmlHttpReq.open("GET",url,true);//异步方式
xmlHttpReq.onreadystatechange = showResult; //showResult是回调函数名
xmlHttpReq.send(null);
function showResult(){
if(xmlHttpReq.readyState == 4){
if(xmlHttpReq.status == 200){
******
}
}
}
Java代码
xmlHttpReq.open("GET",url,false);//同步方式
xmlHttpReq.send(null);
showResult(); //showResult虽然是回调函数名但是具体用法不一样~
function showResult(){
//if(xmlHttpReq.readyState == 4){ 这里就不用了,直接dosomething吧~
//if(xmlHttpReq.status == 200){
******//dosomething
//}
//}
}
xmlhttp.open("Post",url,true);
如果是同步(false),返回值是true或false,因为执行完send后,开始执行onreadystatechange,程序会等到onreadystatechange都执行完,取得responseText后才会继续执行下一条语句,所以returnValue一定有值。
如果是异步(true),返回值一定是null,因为程序执行完send后不等xmlhttp的响应,而继续执行下一条语句,所以returnValue还没有来的及变化就已经返回null了。
http://te343.w3.sh.cn/blog/view.aspx?blogid=82
所有如果想获得xmlhttp返回值必须用同步,异步无法得到返回值。
同步异步使用xmlhttp池时都要注意:取得xmlhttp时只能新建xmlhttp,不能从池中取出已用过的xmlhttp,因为被使用过的xmlhttp的readyState为4,所以同步异步都会send但不执行onreadystatechange。

猜你喜欢
联络方式:
深圳 · 龙岗 · 大运软件小镇22栋302-308
电话:400 1828 580
邮箱:szhulian@qq.com



-
【正告】有关深圳市乾坤科技网络有限公司抄袭我司网页之正告
近段时间来,我司深正互联因网站因排名较好,搜索:龙岗网站建设,更是排名第一,然我司之网页设计精美图以及全站代码而被大量抄袭,网络上出现很多与本站雷同的网页,我司深感愤怒与痛心...
-
如何注册微信公众号
网站搜索微信公众号注册平台,点击打开就可以看到第二幅图中显示的公众号注册、订阅号注册、服务号注册、如果你需要注册任意一种都可以点进去注册。我们今天教的是注册公众号,所以我们点击公众号注册就可以了...
-
【通知】2019深正互联网络有限公司有关于端午节放假通知
根据《国务院办公厅关于2019年部分节假日安排的通知》的相关规定,结合深圳市大运软件小镇内部相关规定及深正互联具体的情况2019年端午节放假安排如下
-
【网站优化】怎么做文章伪原创让百度收录?
要创作出好的文章并被百度所喜欢,就非常需要SEO的优化能力,以及要对文章进行塬创或伪塬创,那么,如何做伪塬创文章?以及如何做好塬创网站文章呢?对此,本文小编就为大家带来了几招做"塬创"网站文章的心得...
-
如何使用JavaScript读取本地文件?
本篇文章给大家介绍一下使用JavaScript读取本地文件的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助...