javascript - Service Worker 注册问题

标签 javascript service-worker

Service Worker 未注册,因为我收到错误“获取脚本时收到错误的 http 响应代码 404”。我可能缺少什么步骤?我已经使用以下方式注册了服务人员:

<script>
    if('serviceWorker' in navigator) {
        navigator.serviceWorker
            .register('/ServiceWorker.js')
            .then(function() { console.log("Service Worker Registered"); });
    }
</script>

此外,我们可以在 Service Worker 中缓存 .aspx 页面吗?

最佳答案

页面内的此脚本无法找到 /ServiceWorker.js,可能是由于二选一的原因造成的。文件 /ServiceWorker.js 确实存在您的网站根文件夹中不存在该名称,或者您输入了错误的名称。根本没有缺少任何步骤,并且代码片段看起来没问题。

另一个问题是,你不仅可以缓存字体、CSS 和 JS 等静态文件,还可以缓存任何动态网络响应。

/ServiceWorker.js内添加:

self.addEventListener('fetch', function(event) {
  console.log(event.request);
});

这将在您的浏览器控制台中记录您尝试请求的 URL 以及您的服务器、图像、文本等。您可以克隆任何响应对象并将其放入缓存中,以便在下次访问时从那里提供服务。

Goog 示例/教程:https://developers.google.com/web/ilt/pwa/caching-files-with-service-worker#serving_files_from_the_cache

关于javascript - Service Worker 注册问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43951121/

相关文章:

javascript - 是否可以使用 for 循环编辑多个数组?

javascript - 使用 Javascript 访问 ArrayList 的特定成员

javascript - 为什么返回未定义?以及如何解决?

node.js - ServiceWorker 注册失败 : A bad HTTP response code (404) was received when fetching the script

javascript - Controller 数据未传递给指令

javascript - 从mysql文本类型显示换行符到ejs

websocket - serviceworker 和 web 推送消息的关系

javascript - 在 Safari 上更新 ServiceWorker 而无需重新加载页面

javascript - ServiceWorkerContainer.ready 特定的 scriptURL?

amazon-s3 - 如何在 AWS S3 中设置自定义响应 header