jquery :: ajaxStop()对jquery :: ajaxComplete()

前端之家收集整理的这篇文章主要介绍了jquery :: ajaxStop()对jquery :: ajaxComplete()前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在哪个时间使用哪个。

http://api.jquery.com/的文档中:

对于ajaxStop()它说:

Description: Register a handler to be called when all Ajax requests have completed. This is an Ajax Event.

对于ajaxComplete()它说:

Description: Register a handler to be called when Ajax requests complete. This is an Ajax Event.

从我可以看到ajaxComplete()更灵活,由于:

All ajaxComplete handlers are invoked,regardless of what Ajax request was completed. If we must differentiate between the requests,we can use the parameters passed to the handler. Each time an ajaxComplete handler is executed,it is passed the event object,the XMLHttpRequest object,and the settings object that was used in the creation of the request.

有人可以解释每个是什么和每个的适当用法。在我最近构建的应用程序中,我依赖于ajaxStop()在我的ajax调用完成时触发。然后我将解析返回的数据的服务器端操作的结果。现在我开始怀疑是否应该使用ajaxComplete()或者两者的组合为各种情况。

想法赞赏。

解决方法

嗯,短版本是为不同的目的,所以答案将是“两种结合的各种情况”选项。基本规则是:

> .ajaxComplete() – 为每个完成的请求运行,当你想对每个请求/结果做某事时使用这个。注意,这不会取代成功处理程序,因为解析的数据不是参数之一(并且它运行,即使有一个错误) – 你可能希望.ajaxSuccess()在一些每个请求情况。
> .ajaxStop() – 当每批请求完成时运行,通常你可以结合使用.ajaxStart()显示/隐藏某种类型的“Loading …”指示符,或者在一批AJAX请求时执行其他操作完成,像一个大师的最后一步。

如果你使用这个来解析你的数据,可能有一个更好的方法,在这种情况下,$.ajaxSetup(),你可以指定一个成功处理程序获取已解析的数据(例如JSON响应将是对象),像这样:

$.ajaxSetup({
  success: function(data) { 
    //do something with data,for JSON it's already an object,etc.
  }
});

猜你在找的jQuery相关文章