繁体   English   中英

Window.onUnload 不一致地向服务器发送结果

[英]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 次。 这种不一致是否有原因? 谢谢

不幸的是,在unloadonBeforenUnload事件处理程序中调用 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM