【问题标题】:jQuery - ignore double AJAX calls?jQuery - 忽略双 AJAX 调用?
【发布时间】:2015-06-26 00:48:58
【问题描述】:

我在多个地方附加了 AJAX 调用(不幸的是,不仅是按钮,还有链接、表单和其他东西),我知道如何手动处理这个问题(找到我进行 AJAX 调用的每个地方,然后阻止/覆盖按钮在第一次通话期间),我想知道是否有办法更自动地做到这一点?

如果我们在谈论 jQuery - 也许是一个插件?会起作用的东西吗? :)

最好有类似的东西:

if clicked element has .ajax class 
  block all ajax requests if the current one is still live

然后,我将 .ajax 类添加到每个按钮/链接/触发请求的任何内容中,瞧。有这样的东西吗?

【问题讨论】:

  • 如果您发布您的代码,也许有人会帮助您,目前您可以在这里查看:raymondcamden.com/2015/04/03/…
  • $.hasClass() 存在,但我可能误解了你在说什么
  • @vove 没有更多的代码,我在应用程序的每个部分都有无数的 AJAX 请求,我想我想在全球范围内阻止双重 AJAX 请求。我说的是通常的 .click() $.ajax 请求。

标签: javascript jquery ajax jquery-plugins double-click


【解决方案1】:

你可以创建一个全局变量:

loadingAjax = false;

每当触发事件时,您可以使用以下方法将此变量设置为 TRUE:

$("selector").click(function(){
  if(!loadingAjax){
    loadingAjax = true;
    $.ajax(options)..
  }
});

当 ajax 停止时,您应该将 loadingAjax 转回 false:

$( document ).ajaxStop(function() {
    loadingAjax = false
});

【讨论】:

    猜你喜欢
    • 2011-04-10
    • 2014-02-17
    • 2016-08-15
    • 2013-04-04
    • 2012-04-01
    • 2011-06-16
    • 2019-01-05
    • 1970-01-01
    • 2011-07-13
    相关资源
    最近更新 更多