ajaxCall() {
$.ajax({
...
...
success: function(response) {
event2();
}
});
}
如果我们有一个调用,比如:
event1();
ajaxCall();
event3();
会是始终保证活动的执行顺序是 事件1(),那么事件2()和EVENT3( )没有设置异步标志?
ajaxCall() {
$.ajax({
...
...
success: function(response) {
event2();
}
});
}
如果我们有一个调用,比如:
event1();
ajaxCall();
event3();
会是始终保证活动的执行顺序是 事件1(),那么事件2()和EVENT3( )没有设置异步标志?
AJAX是异步 JAX :)有你的答案。
如果你想同步调用,您需要设置async: false
标志。但随后的success
回调将不会在所有调用,你就需要把event2();
线仅低于$.ajax
电话。
另见Mike C's answer。同步调用已弃用。
在一般情况下,你是对的,如果你设置async
到false
。但是,synchronous AJAX has been deprecated和jQuery officially dropped support for it after v1.8。
所以我建议你避免尝试使用同步AJAX请求。
当触发它的事件(即,HTTP响应)发生的回调函数将闪光号。
你马上打电话后你分配回调函数将仍然被称为立即。
执行的顺序仍然是:
event1();
ajaxCall();
$.ajax();
event3();
success();
event2();
决不设置'异步:FALSE',没有,订单将不能得到保证,也不应该依赖任何这样的顺序,Ajax调用完成当他们完成时。然而,你似乎要问的是,如果函数将按照该顺序执行,并且他们将会,他们可能不会按照该顺序完成 – adeneo