哪个是在哪个时候使用.
在http://api.jquery.com/上的文档中:
对于ajaxStop(),它说:
描述:在所有Ajax请求完成时注册要调用的处理程序.这是一个Ajax事件.
对于ajaxComplete(),它说:
描述:注册Ajax请求完成时要调用的处理程序.这是一个Ajax事件.
从我可以看到ajaxComplete()更灵活,因为:
无论Ajax请求完成了什么,都会调用所有ajaxComplete处理程序.如果我们必须区分请求,我们可以使用传递给处理程序的参数.每次执行ajaxComplete处理程序时,都会传递事件对象,XMLHttpRequest对象以及在创建请求时使用的设置对象.
有人可以解释每个人的用途以及每个人的适当用法.在我最近构建的应用程序中,当我的ajax调用完成时,我依靠ajaxStop()来触发.然后我将解析返回的数据以获得服务器端操作的结果.现在我开始怀疑我是否应该使用ajaxComplete()代替或两者的组合用于各种情况.
我们很感激.
Nic*_*ver 58
嗯,简短的版本是他们服务于不同的目的,所以答案将是"两种情况的组合适用于各种情况"选项.基本规则是:
.ajaxComplete()- 为每个完成的请求运行,当您想对每个请求/结果执行某些操作时使用此选项.请注意,这不会替换success处理程序,因为解析的数据不是参数之一(即使出现错误也会运行) - 您可能需要.ajaxSuccess()在某些请求情况下代替..ajaxStop()- 在每批请求完成时运行,通常你会将它与.ajaxStart()显示/隐藏某种类型的"Loading ..."指标结合使用 - 或者在一批AJAX请求完成后执行其他操作,例如掌握最后一步.如果您使用它来解析数据,那么可能有更好的方法,在这种情况下$.ajaxSetup(),您可以指定success获取已解析数据的处理程序(例如,JSON响应将是对象),如下所示:
$.ajaxSetup({
success: function(data) {
//do something with data, for JSON it's already an object, etc.
}
});
Run Code Online (Sandbox Code Playgroud)
ajaxComplete 只要ajax请求成功完成或出错,就会调用它.
ajaxStop在所有 ajax请求完成时调用.因此ajaxComplete,如果仍有正在进行的请求,则不会调用它.
如果要为每个ajax请求执行要执行的操作,则应使用第一个.