gpt4 book ai didi

javascript - 为什么 Service worker 不能在 Chrome 中工作?

转载 作者:行者123 更新时间:2023-12-05 03:54:31 26 4
gpt4 key购买 nike

我是网络开发的新手,如果我的问题不清楚,请见谅。

我正在尝试制作一个 PWA,目前正在测试我的 list 和服务 worker 是否正常工作。在我的项目中,我有一个名为 app.js 的 index.html 文件,我尝试在其中注册名为 serviceworker.js 的服务 worker 。这是我尝试注册服务 worker 的代码段:

if('serviceWorker' in navigator) {
navigator.serviceWorker.register('/serviceworker.js')
.then(function() {
console.log('service worker registered');
});
}
else {
console.log('cannot register');
}

当我重新加载我的页面时,我的控制台显示“无法注册”。为了解决这个问题,我在if子句中写了一行,看看是不是条件本身的问题。事实证明,即使删除 if 和 else 子句并简单地运行 navigator.serviceWorker.register('/serviceworker.js')
.then(函数() {
console.log('service worker 注册');
});
代码段,控制台显示错误“找不到属性寄存器”。据我所知,service worker 并不适用于所有浏览器,但我检查它是否在 Chrome 中运行(这是我正在测试的)并且它说支持 service workers。有人可以告诉我为什么它不起作用吗?我目前使用的是 Chrome 的 80.0.3987.149 版(正式版)(64 位)。另外,我不知道这是否重要,但我正在使用 Node.js。提前致谢。

最佳答案

由于声誉低无法发表评论,但请查看this & this出。

简而言之:出于安全原因,Service Workers 要求使用它们的站点通过 HTTPS 提供服务,但对本地主机有异常(exception)。

检查 this了解如何在本地主机上提供您的 html 文件。

关于javascript - 为什么 Service worker 不能在 Chrome 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60879559/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com