js 等待ajax执行结束
ajax强大之处在于它的异步请求,但是有时候我们需要ajax执行彻底完成之后再执行其他函数或操作,如果遇到以上情况怎么解决?
大部分的解决方法是在ajax请求时,设置async: false(默认为true),进行同步请求,即Ajax请求将整个浏览器锁死,只有请求结束后才能执行其他操作。但是这样设置感觉违背的ajax的异步请求的特性。
现在提供一个新的解决方案,就是利用 jquery 的 when().done 函数 等待 ajax 执行结束之后再进行后续操作,代码如下:
//ajax操作 myajax = $.ajax( { url: "", type: "post", success: function (data) { } }); //myajax请求完毕时执行 $.when(myajax).done(function () { //要执行的操作 }); }