【问题标题】:Execute function after getting the "XHR finished loading" message收到“XHR 完成加载”消息后执行函数
【发布时间】:2019-07-04 20:27:33
【问题描述】:

菜鸟问题。我做对了吗? XML HttpRequest 完成后,控制台中会显示“XHR 完成加载”,对吗? 因此,如果我想在 XML HttpRequest 完成后执行一个函数,我应该能够像在

中那样使用 .ajaxComplete()
$( document ).ajaxComplete(function(){
    console.log("complete");
});

所以每当 XML HttpRequest 完成时,“完成”应该出现在控制台中吗? 我已经用 .ajaxComplete、.ajaxSuccess 和 .ajaxStop 试过了,但没有结果。

【问题讨论】:

    标签: javascript ajax xmlhttprequest


    【解决方案1】:

    所以只要一个 XML HttpRequest 完成

    没有。这是一个jQuery method,仅适用于 jQuery ajax 请求(例如,使用jQuery.ajaxjQuery.post 发出的请求)。

    在这个演示中你可以看到它只触发一次 ajaxComplete 回调。

    const url = 'https://dog.ceo/api/breeds/image/random';
    
    $(document).ajaxComplete(function() {
      console.log("ajaxCompleteCalled");
    });
    
    $.ajax(url).then(data => console.log("jQuery ajax done"));
    
    fetch(url).then(response => console.log("Fetch ajax done"));
    
    const x = new XMLHttpRequest();
    x.open("GET", url);
    x.addEventListener("load", e => console.log("XHR ajax done"));
    x.send();
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

    浏览器内置的 API(XMLHttpRequest 或 fetch)没有等效的。为它们编写一个包装函数。

    【讨论】:

    • 哇,感谢您的大力支持!这对我帮助很大!
    【解决方案2】:

    XML HttpRequest 没有称为 ajaxComplete() 的回调;

    您可以从这里https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest查看 XML HttpRequest 的文档

    【讨论】:

    • 非常感谢!我会检查你发给我的文件!
    猜你喜欢
    • 2012-10-02
    • 2011-07-25
    • 1970-01-01
    • 2020-07-20
    • 1970-01-01
    • 2017-08-03
    • 2023-03-14
    • 2016-03-19
    • 1970-01-01
    相关资源
    最近更新 更多