Ajax小知识总结
2016-02-23 18:24
363 查看
jquery的Ajax请求中的async:false/true的作用
a href=”javascript:void(0)” onmouseover=”testAsync()”>
asy.js
function testAsync(){
var temp;
$.ajax({
async: false,
type : “GET”,
url : ‘tet.php’,
complete: function(msg){
alert(‘complete’);
},
success : function(data) {
alert(‘success’);
temp=data;
}
});
alert(temp+’ end’);
}
async: false,(默认是true);
如上:false为同步,这个 testAsync()方法中的Ajax请求将整个浏览器锁死,
只有tet.php执行结束后,才可以执行其它操作。
当async: true 时,ajax请求是异步的。但是其中有个问题:testAsync()中的ajax请求和其后面的操作是异步执行的,那么当tet.php还未执行完,就可能已经执行了 ajax请求后面的操作,
如: alert(temp+’ end’);
然而,temp这个数据是在ajax请求success后才赋值的,结果,输出时会为空。
a href=”javascript:void(0)” onmouseover=”testAsync()”>
asy.js
function testAsync(){
var temp;
$.ajax({
async: false,
type : “GET”,
url : ‘tet.php’,
complete: function(msg){
alert(‘complete’);
},
success : function(data) {
alert(‘success’);
temp=data;
}
});
alert(temp+’ end’);
}
async: false,(默认是true);
如上:false为同步,这个 testAsync()方法中的Ajax请求将整个浏览器锁死,
只有tet.php执行结束后,才可以执行其它操作。
当async: true 时,ajax请求是异步的。但是其中有个问题:testAsync()中的ajax请求和其后面的操作是异步执行的,那么当tet.php还未执行完,就可能已经执行了 ajax请求后面的操作,
如: alert(temp+’ end’);
然而,temp这个数据是在ajax请求success后才赋值的,结果,输出时会为空。
相关文章推荐
- 使用ViewPager+Fragment实现选项卡切换效果
- S3C命令摘要
- java与C#的简单比较
- Android Studio NDK使用
- 关于JS的prototype
- 完全背包hdu1248
- Spring加载配置文件
- iOS所有框架总览与介绍
- MFC中自定义消息
- 远程推送
- 一个程序员从金庸開始的读书历程
- A. Far Relative’s Birthday Cake
- tets111
- Word 2007中添加参考文献及其引用的方法
- jquery中this对象
- iOS/OS X 内存管理(二):借助工具解决内存问题
- 如何设计数据库(1)
- Linux下阅读源代码:(g)vim+Taglist+ctags
- shell打包
- 数学美之判断线段相交的最简方法