我有一个后台工作线程,它通过XMLHttpRequest与我们的Web服务器通信,这一直运行良好。这就是说我在退出页面时干净地关闭这个工作人员的问题。在主页面上,我向工作者发送了一条停止消息,它确实收到了它。但是当工作者尝试执行一个最终的XMLHttpRequest时,Logout" LogOut"从服务器,这个请求总是失败。
在为主页触发onbeforeunload事件后,是否阻止工作线程处理网络请求?有没有其他方法可以做到这一点,以便我可以与服务器保持干净的连接?
我已经从主页上做了多年没有问题,但是工作线程似乎有一些令人讨厌的限制,除非我做错了。如果我在退出页面的用户的onbeforeunload之前发布Stop消息,则相同的代码可以正常工作。
主页:
$(window).on("beforeunload", function () {
worker.postMessage({ Action: "Stop" });
});
工人脚本:
self.addEventListener("message", function (d) {
switch(d.data.Action) {
case "Stop":
// Simple REST GET code for logout which always fails
break;
}
});