[英]Window.onUnload inconsistently sends results to server
我试图让用户在尝试离开页面时收到警报,并在他们离开时发出发布请求,如果没有,则不执行任何操作。 这是我的代码(使用 JQuery):
$(window).on("unload", function() {
$.post("/delete-room", {
roomID: roomId
});
});
$(window).on("beforeunload", function() {
return true
})
我(我的服务器)有时会收到发布请求,但在我关闭选项卡/卸载页面时只有大约 1/5 次。 这种不一致是否有原因? 谢谢
不幸的是,在unload
或onBeforenUnload
事件处理程序中调用 ajax 并不可靠。 大多数调用永远不会到达后端。 考虑改用sendBeacon 。
$(window).on("unload", function() {
var formData = new FormData();
formData.append('roomID', roomId);
navigator.sendBeacon("/delete-room", formdata);
});
无论发生什么(关闭选项卡或POST
、移动到新页面等),浏览器都会在不阻止或延迟的情况下发布数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.