【问题标题】:jquery: how to check if a page is performing an ajax request?jquery:如何检查页面是否正在执行 ajax 请求?
【发布时间】:2012-05-21 22:42:36
【问题描述】:

我想构建一个随每个 ajax 请求触发的函数。就像显示“正在加载...”一样。我用的是 Jquery 可以吗?

【问题讨论】:

  • 你应该在这里展示你尝试过的东西——例如一些代码,因为这是可行的,但 StackOverflow 不是一家咨询公司。
  • 我认为我的问题不需要显示代码,因为我的代码中没有遇到问题,除了相信 s 可能是一个技术问题,可能是你不喜欢它因为这是一个小问题。

标签: jquery ajax


【解决方案1】:

如前所述,$.active 包含活动的 jQuery AJAX 连接数。当 $.active 达到 0 时,所有的 AJAX 都已经加载完毕。因此,您可以设置一个 bucle 并等待所有处决。我在这里找到了解决方案,“etgregor”答案

How do I know if jQuery has an Ajax request pending?

【讨论】:

    【解决方案2】:

    是的:

    http://api.jquery.com/ajaxStart/

    http://api.jquery.com/ajaxStop/

    HTML:

    <div id="loadingDiv">Loading ajax stuff...</div>
    

    jQuery:

    $('#loadingDiv')
    .hide() 
    .ajaxStart(function() {
        $(this).show();
    })
    .ajaxStop(function() {
        $(this).hide();
    });
    

    【讨论】:

      【解决方案3】:

      jQuery.active 包含活动的 jQuery AJAX 连接数。但是,您必须不断轮询该 var,以便在新连接出现时触发事件。

      不管怎样,你为什么要用它作为“加载”指示器?只需在您提出请求时设置指标即可。

      【讨论】:

      • 很好的答案,这就是我要找的。​​span>
      【解决方案4】:

      是的,这是完全可能的。从这里的全局 ajax 处理程序开始http://api.jquery.com/category/ajax/global-ajax-event-handlers/.ajaxStart() 和 .ajaxStop() 事件最有可能显示您的状态指示器。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-10
        • 1970-01-01
        • 2021-06-25
        • 1970-01-01
        • 2015-05-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多