jquery ajax的async使用
jquery ajax的async使用jquery ajax的async默认值为true,这时候执行的是两个线程,ajax块发出请求后的一个线程和ajax块后面的脚本(另一个线程)。
ajax中async实例一
$.ajax({
type:"POST",
url:'url',
dataType:"html",
success:function(result){ //function1()
f1();
f2();
}
failure:function (result) {
alert('Failed');
},
}
function2();
实例说明
1、在上例中,当ajax块发出请求后,他将停留function1(),等待server端的返回,但同时(在这个等待过程中),前台会去执行function2(),也就是说,在这个时候出现两个线程,我们这里暂且说为function1() 和function2()。
2、当把asyn设为false时,这时ajax的请求时同步的,也就是说,这个时候ajax块发出请求后,他会等待在function1()这个地方,不会去执行function2(),直到function1()部分执行完毕。
3、默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。
4、注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行
ajax中async实例二、
function CheckUserName(){ var username = $("#username").val(); var result=false; $.ajax({async:false //要设置为同步的,要不CheckUserName的返回值永远为false ,url:'b.php',data:{name:username} ,success:function(data){ if(data == 1){ $("#warnning").html("<font color=#FF3300>Account is used.</font>"); result=false; } else { $("#warnning").html("<font color=#00CC66>You can register.</font>"); result=true; } }}); return result; }
这个ajax请求则为同步请求,在没有返回值之前,return result 是不会执行的。