簡體   English   中英

Chrome無法加載Shared Worker(除非在隱身模式下)

[英]Shared Worker not being loaded by Chrome (unless in incognito mode)

編輯

shared-worker.js文件重命名為其他任何文件,例如shared-worker-new.js ,似乎可以解決此問題。 我嘗試清空緩存,重新啟動瀏覽器並進行硬重裝,但是shared-worker.js只是不想工作。 新的工作文件似乎沒有出現緩存問題。 重新加載后,對文件的更改將立即應用。 有誰對我為什么不能使用shared-worker.js有任何想法?

/編輯

我似乎無法在Google Chrome(67.0.3396.99)中加載共享工作器。 但是,當我切換到隱身模式時,它確實可以工作。 Firefox(61.0.1)在常規模式和私有模式下均可正常運行。 我已經嘗試過禁用瀏覽器插件,但是那也不起作用。

我有3個文件(在同一目錄中): index.htmlapp.jsshared-worker.js

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Shared Worker Example</title>
</head>
<body>
    <script src="app.js"></script>
</body>
</html>

app.js

var worker = new SharedWorker('./shared-worker.js');

worker.port.onmessage = function(message) {
    console.log('message from the shared worker:', message.data);
};

worker.port.start();
worker.port.postMessage('Hello worker');

shared-worker.js

self.onconnect = function(connect) {
    var port = connect.ports[0];

    port.addEventListener('message', function(message) {
        port.postMessage(`I have received "${message.data}"`);
    });

    port.start();
};

我正在通過php -S localhost:9000運行該應用程序

  • 在Firefox中,控制台輸出以下message from the shared worker: I have received "Hello worker"message from the shared worker: I have received "Hello worker"
  • 在一個隱身的 Chrome標簽中,我得到以下輸出: message from the shared worker: I have received "Hello worker"
  • 在常規的Chrome選項卡中,我根本沒有輸出。

我沒有在開發人員工具的“源/線程”下看到該工作程序,但是當我將共享工作程序加載為常規工作程序時,即var worker = new Worker('shared-worker.js'); ,它確實出現。

為什么我不能在chrome中加載共享工作器,有人知道發生了什么嗎?

在此先感謝您!

DOH-事實證明,我的devtool可能是造成問題的原因。 它停止了我共享工作者的執行。 如果其他任何人都遇到此問題,請確保關閉了會話中使用共享工作程序的所有選項卡,並且調試器沒有暫停執行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM