在哪个时间使用哪个。
在http://api.jquery.com/上的文档中:
对于ajaxStop(),它表示:
描述:注册所有Ajax请求完成后要调用的处理程序。这是一个Ajax事件。
对于ajaxComplete(),它说:
描述:注册一个在Ajax请求完成时要调用的处理程序。这是一个Ajax事件。
从我可以看到,由于以下原因,ajaxComplete()更加灵活:
无论完成了什么Ajax请求,都将调用所有ajaxComplete处理程序。如果必须区分请求,则可以使用传递给处理程序的参数。每次执行ajaxComplete处理程序时,都会将事件对象,XMLHttpRequest对象和用于创建请求的设置对象传递给它。
有人可以解释每个用途是什么,以及每个用途的适当用法。在最近构建的应用程序中,我依靠ajaxStop()在我的ajax调用完成时触发。然后,我将解析返回的数据以获取服务器端操作的结果。现在,我开始怀疑是否应该针对各种情况使用ajaxComplete()或两者结合使用。
思想被赞赏。
好吧,简短的版本是它们有不同的用途,因此答案将是“针对各种情况两者结合”选项。基本规则是:
.ajaxComplete()
success
.ajaxSuccess()
.ajaxStop()
.ajaxStart()
如果您使用它来解析数据,则可能有一种更好的方法,在这种情况下$.ajaxSetup(),您可以指定一个success获取已解析数据的处理程序(例如JSON响应将是对象),如下所示:
$.ajaxSetup()
$.ajaxSetup({ success: function(data) { //do something with data, for JSON it's already an object, etc. } });