在jQuery Ajax里面有一个async 参数 , 默认值 为true , 请求为异步请求 , false 为同步请求 ..
使用ajax加载数据返回页面并赋值,然后前端取出该值
这其中涉及到代码的顺序问题,有时后台还未返回数据 (好比某个同学些的代码很烂,执行时间十几秒),但已执行后面代码,
所以就会造成取不到值 , 这个就是异步请求, 他不管你有没有返回,都继续执行下去...
如果AJAX未返回值,则会一直在等待返回值才执行下面的代码,这叫同步请求 , 缺点是浏览器会卡住...
如果不想用同步请求,解决办法是设置AJAX 的 timeout 超时时间,然后再重复请求
用代码理解下异步请求
alert("setp 1"); $.ajax({ url: "admin.php", async: true, success: function(data){ alert("异步请求"); // 1 } }); alert("setp 2"); //2
首先执行 selp 1 然后执行AJAX URL请求....中->未返回值,他不会一直等待下去 ,会执行 selp 2
用代码理解下同步求情
alert("setp 1"); $.ajax({ url: "admin.php", async: true, success: function(data){ alert("同步求情"); // 1 } }); alert("setp 2"); //2
首先执行 selp 1 然后执行AJAX 请求....中->未返回值 , 则会一直等待....浏览器卡住了,,, 直到返回值才会执行 selp 2 .