我有一个非常简单的样例使用新的Service Worker(渐进式Web应用程序)--了解更多信息请访问https://developers.google.com/web/fundamentals/getting-started/primers/service-workers
当我从本地主机运行我的应用程序时,似乎无法在console.log()上写入样例。但是,在我创建的plunkr中,它确实可以正常工作。以下是在plunkr上运行它的步骤:
1.在Google Chrome网络浏览器中使用以下URL,Plunkr编辑器将出现:https://plnkr.co/edit/FgG2krKDuSmIddR1Pskd?p=preview
下面是应该在console中显示fetch语句的ServiceWorker.js代码。
//serviceWorker.js
console.log("well, I'm in serviceWorker.js");
self.addEventListener("fetch", function(event) {
console.log("Fetch request for:", event.request.url);
});
2. 进入该页面后,打开Chrome开发者控制台(以便查看输出) - 提示:在Chrome浏览器中按下F12即可打开控制台。
运行Plunkr。你应该可以看到以下输出:
问题出现
当我在本地运行此代码(在运行IISExpress的localhost上),我看不到将fetch语句输出到控制台。(这是ServiceWorker.js文件中的代码) 我只能看到初始的注册。
我尝试过的事情
- 停止并重新启动IIS Express
- 切换到Chrome Dev工具应用程序选项卡并强制更新(参见下一图像)
- 切换到Chrome Dev工具应用程序选项卡并强制注销以再次运行并重新注册(参见下一图像)
在Chrome浏览器中,您永远无法看到控制台更新的fetch内容。
4. 在Firefox中本地运行
然而,我在FireFox浏览器中运行相同的代码,那里的控制台确实显示了fetch内容:
![firefox console](https://istack.dev59.com/bhhTR.webp)
编辑
有人问是否由于控制台日志过滤器导致此问题,因此这里提供一个快照,显示没有过滤器,并且所有控制台日志条目都确实显示。这是多次运行(页面重新加载)得到的结果。
[top v]
选择中的条目吗? - T.J. Crowder