【问题标题】:How do I know when an ajax request is complete in jquery我如何知道 ajax 请求何时在 jquery 中完成
【发布时间】:2023-03-10 12:24:01
【问题描述】:

我有两个使用 jquery 的帖子请求和一个使用这些帖子结果的方法。所以代码是这样工作的:

 post1
 post2
 function

如何让代码等到 post1 和 post2 都完成后再调用函数?我尝试做一个while循环来查看post1和post2的数据是否都已设置,但它会挂起浏览器。我可以同步调用它们,但这比同时触发两个请求并等待它们完成要慢。这在除 JavaScript 之外的任何多线程语言中都很容易解决,因为官方认为它不是多线程的,因此不支持等待一系列“线程”完成。

【问题讨论】:

    标签: jquery ajax


    【解决方案1】:

    记录请求的数量,并在您的回调中对其进行修改,然后查看是否还有剩余要运行。

    var count = 2;
    var callback = function () {
        count--;
        if (!count) {
            both_ajax_called_successful();
        }
    };
    
    jQuery.ajax({url: 'example1', success: callback});
    jQuery.ajax({url: 'example2', success: callback});
    

    【讨论】:

    • 这个。重要的是在回调中执行此操作,而不是使用 setTimeout 来监控已完成的 ajax 调用次数。
    【解决方案2】:

    声明一个计数器,其值为请求数,并在每次收到响应时将其值减一。当值为 0 时,所有请求都应该完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-09
      • 1970-01-01
      • 2013-05-08
      • 1970-01-01
      • 2017-06-16
      • 2010-12-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多