gpt4 book ai didi

javascript - 使用 window.onunload 调用时,AJAX 调用在 IE8 及更低版本中中止

转载 作者:行者123 更新时间:2023-12-02 18:51:09 25 4
gpt4 key购买 nike

我有一个 jQuery AJAX 调用,每 5 分钟以及当用户离开页面时进行一次(使用不同的参数)。

/* Remove locks when leaving page - AJAX 'aborted' by IE8 and below */
window.onunload = function () {
manageLocks(2)
}

/* Refresh locks every 5 minutes - AJAX works fine in all browsers */
window.setInterval(function () {manageLocks(1);}, 30000);

function manageLocks(mode) {
$.ajax({
type: "POST",
url: "/System/ManageLocks",
data: '{ "action" : ' + mode + '}',
contentType: "application/json",
dataType: "json",
cache: false
});
}

我认为这不是 AJAX 调用的问题,而是该函数调用方式的问题。当使用 window.setInterval 调用时,它在所有浏览器中都能正常工作。但在 IE8 及以下版本的网络面板中使用 window.onunload 调用时显示为“已中止” .

是否有人知道旧的 IE 版本在以这种方式调用时会阻止某些功能,或者对 onunload 的支持不稳定? ?有没有其他方法可以让它在旧版 IE 中工作?

只要我能拿到managelocks每 5 分钟并且当用户离开页面时调用一次函数(我知道,实际上,当浏览器关闭时不会调用该函数 - 我可以接受这一点)我不太挑剔它是如何发生的.

谢谢。

最佳答案

尝试将 ajax 调用的异步参数设置为 false,以便它执行调用然后卸载页面。目前,它正在尝试在卸载页面的同时执行 ajax 调用,并且页面似乎在调用完成之前已卸载,因此它取消了 ajax 调用,因此通过将 async 设置为 false 将允许 ajax 调用完成在页面卸载之前

关于javascript - 使用 window.onunload 调用时,AJAX 调用在 IE8 及更低版本中中止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15805816/

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