gpt4 book ai didi

jquery::ajaxStop() 与 jquery::ajaxComplete()

转载 作者:行者123 更新时间:2023-12-03 21:29:10 27 4
gpt4 key购买 nike

什么时候使用哪个。

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() - 针对完成的每个请求运行,当您想对每个请求/结果执行某些操作时使用此选项。请注意,这不会取代 success 处理程序,因为解析的数据不是参数之一(即使出现错误它也会运行) - 您可能需要 .ajaxSuccess()在某些按请求的情况下。
  • .ajaxStop() - 当每批请求完成时运行,通常您可以将其与 .ajaxStart() 结合使用例如显示/隐藏某种“正在加载...”指示器 - 或者在一批 AJAX 请求完成后执行其他操作,例如主最后一步。

如果您使用它来解析数据,可能有更好的方法,在本例中为 $.ajaxSetup() ,您可以在其中指定一个 success 处理程序来获取已解析的数据(例如 JSON 响应将是对象),如下所示:

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

关于jquery::ajaxStop() 与 jquery::ajaxComplete(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4419241/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com