Ajax同步与异步的区别
来源:互联网 发布:qq农场数据修改 编辑:程序博客网 时间:2024/06/06 01:23
var returnValue = null; 在异步时才可以用xmlHttpReq.onreadystatechange状态值!下面是异步和同步的不同调用方式: xmlHttpReq.open("GET",url,true);//异步方式 function showResult(){ Java代码 http://te343.w3.sh.cn/blog/view.aspx?blogid=82 所有如果想获得xmlhttp返回值必须用同步,异步无法得到返回值。 同步异步使用xmlhttp池时都要注意:取得xmlhttp时只能新建xmlhttp,不能从池中取出已用过的xmlhttp,因为被使用过的xmlhttp的readyState为4,所以同步异步都会send但不执行onreadystatechange。
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;
Java代码
xmlHttpReq.onreadystatechange = showResult; //showResult是回调函数名
xmlHttpReq.send(null);
if(xmlHttpReq.readyState == 4){
if(xmlHttpReq.status == 200){
******
}
}
}
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了。
- Ajax同步与异步的区别
- [转]Ajax同步与异步的区别
- AJAX 同步与异步的区别
- ajax同步与异步的区别
- ajax同步与异步的区别
- ajax同步与异步的区别
- ajax 同步与异步的区别
- Ajax同步与异步区别
- ajax同步异步的区别
- ajax同步异步的区别
- ajax的同步与异步
- AJAX的同步与异步
- ajax的同步与异步
- Ajax的同步与异步
- ajax的同步与异步
- ajax的同步与异步
- ajax的同步与异步
- ajax的同步与异步
- JSP动态网页程序设计详解
- 对Sql进行类似For循环处理(转牦牛的天空)
- 在c#中读取文件摘要信息
- 弹出框用了databean后如何返回值
- 数值保留小数点两位,但同时去除小数点后多余0 的 javascript、java实现
- Ajax同步与异步的区别
- 如何写项目文档?项目文档有哪些?
- UTF8--UTF16
- source insight的自动缩进 以及网上的一些使用技巧
- org.tigris.subversion.javahl.ClientException: Attempted to lock an already-locked dir异常解决方法
- 人人都是高手啊 囧啊!
- 通知CursorAdapter其database中的已变更
- 条款2:尽量用iostream而不用stdio.h
- JQuery对基本Html控件的操作