Window.onUnload 不一致地向服务器发送结果
Window.onUnload inconsistently sends results to server
我试图让用户在他们试图离开页面时收到警报,如果他们离开,则发出 post 请求,否则什么也不做。这是我的代码(使用 JQuery):
$(window).on("unload", function() {
$.post("/delete-room", {
roomID: roomId
});
});
$(window).on("beforeunload", function() {
return true
})
我(我的服务器)有时会收到 post 请求,但当我关闭 tab/unload 页面时只有大约 1/5 次。这种不一致是有原因的吗?谢谢
不幸的是,在 unload
或 onBeforenUnload
事件处理程序中进行 ajax 调用并不可靠。大多数调用永远不会到达后端。考虑改用 sendBeacon。
$(window).on("unload", function() {
var formData = new FormData();
formData.append('roomID', roomId);
navigator.sendBeacon("/delete-room", formdata);
});
无论发生什么情况(关闭标签页或 window、移动到新页面等),浏览器都会 POST
数据而不会阻止或延迟。
我试图让用户在他们试图离开页面时收到警报,如果他们离开,则发出 post 请求,否则什么也不做。这是我的代码(使用 JQuery):
$(window).on("unload", function() {
$.post("/delete-room", {
roomID: roomId
});
});
$(window).on("beforeunload", function() {
return true
})
我(我的服务器)有时会收到 post 请求,但当我关闭 tab/unload 页面时只有大约 1/5 次。这种不一致是有原因的吗?谢谢
不幸的是,在 unload
或 onBeforenUnload
事件处理程序中进行 ajax 调用并不可靠。大多数调用永远不会到达后端。考虑改用 sendBeacon。
$(window).on("unload", function() {
var formData = new FormData();
formData.append('roomID', roomId);
navigator.sendBeacon("/delete-room", formdata);
});
无论发生什么情况(关闭标签页或 window、移动到新页面等),浏览器都会 POST
数据而不会阻止或延迟。