ajaxStop 有时在 ajaxStart 之后没有触发

ajaxStop did not triggered after ajaxStart sometimes

我用ajaxStartajaxStop通过这种方式显示和隐藏加载:

    $(document).ajaxStart(function () {
        $.LoadingOverlay("show", {
            fade:[100,100]
        });
    });

    $(document).ajaxStop(function () {
        $.LoadingOverlay("hide", {
            fade: [100, 100]
        });
    });

此代码有效。但有时ajaxStop功能没有触发,你必须按F5键重新加载页面。因为显示从 ajax 开始加载 没有隐藏。

找不到问题

我的 jQuery 版本是 2.2.4.

已更新

我用的是ajaxComplete而不是ajaxStop,但是还是有同样的问题。

  $(document).ajaxStart(function () {
        $.LoadingOverlay("show", {
            fade:[100,100]
        });
    });

    $(document).ajaxComplete(function () {
        $.LoadingOverlay("hide", {
            fade: [100, 100]
        });
    });

还有什么有用的吗?

使用ajax完成

ajaxComplete 在 ajax 请求完成时调用,无论是成功还是出错。

当所有 ajax 请求完成时,将调用

ajaxStop。因此与 ajaxComplete 不同,如果仍有请求正在进行,则不会调用它。

如果您要执行的操作应该针对每个 ajax 请求执行,则您应该使用第一个。

感谢@sje397 来自