关闭Javascript Worker线程

时间:2017-05-31 22:20:37

标签: javascript onbeforeunload worker

我有一个后台工作线程,它通过XMLHttpRequest与我们的Web服务器通信,这一直运行良好。这就是说我在退出页面时干净地关闭这个工作人员的问题。在主页面上,我向工作者发送了一条停止消息,它确实收到了它。但是当工作者尝试执行一个最终的XMLHttpRequest时,Logout" LogOut"从服务器,这个请求总是失败。

在为主页触发onb​​eforeunload事件后,是否阻止工作线程处理网络请求?有没有其他方法可以做到这一点,以便我可以与服务器保持干净的连接?

我已经从主页上做了多年没有问题,但是工作线程似乎有一些令人讨厌的限制,除非我做错了。如果我在退出页面的用户的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;
    }
});

0 个答案:

没有答案