Kir*_*aar 6 javascript firefox service-worker
我开始了解服务工作者并创建了一个简单的测试者。它似乎在 Chrome 上可以正常注册、激活和工作,但在 Firefox 上却不行。
这是 sw.js (从我的根文件夹提供):
console.log("sw");
self.addEventListener("install", (event) => {
self.skipWaiting();
console.log("Installed!");
});
self.addEventListener("activate", function () {
clients.claim();
console.log("Activated!");
});
self.addEventListener("fetch", (event) => {
console.log("fetch");
});
self.addEventListener("push", (event) => {
console.log("push");
});
Run Code Online (Sandbox Code Playgroud)
我将其加载到入口点:
if ("serviceWorker" in navigator) {
window.addEventListener("load", () => {
navigator.serviceWorker
.register("/sw.js")
.then((registration) => {
console.log("SW registered: ", registration);
})
.catch((registrationError) => {
console.log("SW registration failed: ", registrationError);
});
});
}
Run Code Online (Sandbox Code Playgroud)
Chrome 控制台显示了我所期望的内容:
SW registered: >ServiceWorkerRegistration
[...]
state: "activated"
scope: "https://my.web.site/"
sw
Installed!
Activated!
fetch
fetch
Run Code Online (Sandbox Code Playgroud)
Firefox 控制台仅显示以下内容:
SW registered: >ServiceWorkerRegistration
[...]
state: "activated"
scope: "https://my.web.site/"
Run Code Online (Sandbox Code Playgroud)
我不明白为什么 Firefox 会注册服务工作线程,将其显示为在应用程序 > 服务工作线程中运行,但不触发安装/激活事件,也不拦截任何获取,即使在重新加载页面和/或关闭并重新打开页面之后也是如此。标签。
我从登录的 Gitpod 实例并通过 HTTPS 运行它(如果这有什么区别的话)。
小智 7
事实上,来自 Service Worker 的控制台消息不会显示在开发工具页面中。您可以在此页面中找到您的站点工作人员about:debugging#/runtime/this-firefox
,然后单击“检查”以打开专用于特定服务工作人员的新开发工具。
归档时间: |
|
查看次数: |
791 次 |
最近记录: |