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。
转自:http://blog.sina.com.cn/s/blog_4d6fba1b0100mri4.html
分享到:
相关推荐
详细介绍了AJAX的通信过程 同步或者异步 值得一看
用法 XMLHttpRequest的用法 ajax同步和异步的区别
最近的项目用了到AJAX同步。这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出去假死状态,当这个AJAX执行完毕后才会继续运行其他代码页面假死状态解除。 而异步则这个AJAX代码...
调用方法:1 将下载好的Ajax js文件引用到页面 代码如下:<script src " js MyAjax js" type "text javascript">< script> 2 调用方法:(1)异步: MyAjax " 要调用的方法...
原生ajax代码实现异步提交,用传统的ajax实现异步提交判断用户名是否存在,详细和完整的步骤,可运行
通过ajax向后台发送和接收数据时,常常会出现同步异步问题。这篇文章给大家介绍Ajax同步和异步问题浅析,需要的朋友参考下
对新手学ajax 有帮助。希望大家能够喜欢和利用。
jquery中ajax方法有个属性async用于控制同步和异步,默认是true,即ajax请求默认是异步请求,有时项目中会用到AJAX同步。这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出现假死...
主要是对Ajax同步与异步传输的示例代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
ajax 同步请求和异步请求的差异分析,需要的朋友可以参考下。
javascript发送ajax请求,获取返回值res,async 同步/异步 var res = sendRequest({ url : "1.php", //necessary method : "post", params : { param1 : "123", param2 : "234" }, async : false });
最近的项目用了到AJAX同步。这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出去假死状态,当这个AJAX执行完毕后才会继续运行其他代码页面假死状态解除。 而异步则这个AJAX代码...
而在C++开发中,同步模式应该是主流,如果一定要使用异步模式加回调,可以参考Using IXMLHTTPRequest onreadystatechange from C++一文。 下面是采用异步模式获取远程主机上RSS文件的代码,关键的地方是设置一个回调...
jquery ajax 同步异步的执行 return值不能取得的解决方案,需要的朋友可以参考下。
async在jquery ajax中是一个同步参数。本篇文章给大家介绍jq中的ajax async同步和异步,小伙伴跟着小编一起学习吧
下面小编就为大家带来一篇浅谈js的ajax的异步和同步请求的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
本文为大家介绍下ajax同步异步的简单实现,感兴趣的朋友可以参考下
extjs3.0 ajax 同步请求