gpt4 book ai didi

javascript - 带有 ajax 的 onBeforeUnload 不适用于 IE

转载 作者:行者123 更新时间:2023-11-30 18:31:36 24 4
gpt4 key购买 nike

我只是想知道为什么这不适用于 IE。它适用于 Chrome 和 Firefox。

    window.onbeforeunload = function()
{
fetch("http://"+window.location.hostname+"/process_sc.php?cC=" + 1);
}

function fetch(url) {
var x = (window.ActiveXObject) ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest();
x.open("GET", url, false);
x.send(null);
}

最佳答案

你怎么知道它不起作用?

通常,beforeunload 事件、unload 事件和实际页面退出之间的时间很短。在页面卸载时,所有正在运行的脚本都会被删除(例如,浏览器会关闭窗口或导航到用户提供的地址)。

这里可能发生的情况是浏览器实际上没有时间在页面卸载之前发送 ajax 请求。

我见过几种方法来确保在页面卸载完成之前完成您的最终请求。其中之一是发送请求,然后引入运行 X 毫秒数的循环,推迟 unload 事件并确保可以完成 ajax 请求。

window.onbeforeunload = function() {
fetch("http://"+window.location.hostname+"/process_sc.php?cC=" + 1);
// here we force browser to wait for 300 seconds before proceeding with unload
var t = Date.now() + 300;
while(Date.now() < t) {};
}

关于javascript - 带有 ajax 的 onBeforeUnload 不适用于 IE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9480302/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com