问题标签 [service-worker-events]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
815 浏览

service-worker - 自定义@angular/service-worker

如何自定义@angular/service-worker?我知道这不是在 npm_modules 文件夹中修改的合适方法。我遇到了一个教程,作者在其中创建了另外 2 个 js 文件。其中一个文件包含服务工作者代码,而另一个包含“importScripts()”以导入 ngsw-worker.js 文件和自定义服务工作者文件。它工作正常,自定义服务工作者侦听安装事件,但是当涉及到 fetch 事件时,它没有通过这个 fetch 事件侦听器。我没有在这个函数中得到控制台。我不知道为什么会这样。有人知道实现这一目标的原因或任何其他解决方案吗?

这是我遵循的教程的链接, 教程

0 投票
1 回答
84 浏览

caching - 如何缓存服务工作者源文件至少 24 小时

是否有可能将 service worker 源文件缓存至少 24 小时?我试过提供缓存控制:public,max-age=1440。但它不起作用。

此外,如果页面包含 iframe,并且您单独重新加载该 iframe,则将从服务器下载 sw.js(服务工作脚本)。

知道为什么会这样吗?如何避免这种情况?

0 投票
1 回答
3691 浏览

javascript - TypeError: 无法注册 ServiceWorker: 获取脚本时收到错误的 HTTP 响应代码 (404)

我正在尝试向网站添加服务人员。我将 Node.js 与 Express.js、Vue.js 和 EJS 一起使用。^

我的节点服务器(index.js)看起来像:

home.ejs 文件看起来像:

我不得不提到我正在 https 上对其进行测试。我不认为 ServiceWorker.js 的内容很重要,但是如果您需要它来帮助我,我也可以发布它。服务器文件方案如下所示:

当我在 https 上打开网站时,我在 Web 控制台中收到以下错误:

0 投票
1 回答
1491 浏览

javascript - Service Worker:错误捕获(在 Promise 中)TypeError:请求方案“数据”不受支持

发生的情况是在第一次加载网站时,获取和缓存不会遇到任何问题。但是,在刷新(正常重新加载)时,Fetch 事件会遇到问题并在控制台日志中显示。

未捕获(承诺中)类型错误:self.addEventListener.e.respondWith.fetch.then.caches.open.then.cache 不支持请求方案“数据”

我意识到在重新加载时它会获取format data:[<mediatype>][;base64],<data>导致控制台日志中错误的 a 。

我想避免这个错误,但我不知道如何。

0 投票
0 回答
818 浏览

javascript - Web 推送通知(使用服务工作者)

我正在关注这个项目,使用 service-worker Push Notifications 和 ASP.NET Core以及完整的项目Demo.AspNetCore.PushNotifications添加 Web 推送通知。一切正常,我这里唯一的问题是,当我仅针对收到的最后一个通知发送 2 个或更多通知时,单击时会在服务人员中触发 (self.addEventListener('notificationclick', function (event) {...) . 其余的他们什么都不做。如何使它适用于较旧的通知(我认为这只发生在 chrome 上)?

任何帮助将不胜感激

这是我的 service-worker.js :


我发送两个或更多通知并在 (self.addEventListener('notificationclick') 中放置断点。notificationclick 事件仅在我单击收到的最后一个通知时调用!!!!!!!!!!!!

0 投票
1 回答
1806 浏览

reactjs - Service Worker 是如何工作的?

我是渐进式网络应用程序的新手。我已经为我的 react PWA(渐进式 Web)应用程序完成了这个惊人的教程和设置。

现在这是我的serviceworker.js文件

但无法理解它是如何工作的?任何人都可以帮忙在这里注册,取消注册和其他功能吗?

请帮忙!!!

0 投票
1 回答
2760 浏览

angular - 如何使用服务人员以角度访问本地存储?

好的,现在我正在开发 Angular 6 webApp,它首先处于离线状态。我能够设置一个功能齐全的服务工作者,它可以检索和存储请求和响应等等。但是,有一次,在注册同步事件时,我需要刷新令牌,这些令牌存储在我的 web 应用程序的本地存储中。问题是不允许服务人员直接访问本地存储,这意味着我无法访问驻留在本地存储中的令牌。我如何使用某些 api 在服务人员中使用本地存储,或者是否有任何实现我想要做的其他策略(通过重播失败请求的 fetch 调用并附加更新的令牌来执行同步事件,以便数据通过适当的授权同步)。我什至想用 postmessage() API 尝试它,但它不是

0 投票
1 回答
73 浏览

single-page-application - 在单页 webapps 上更新 service worker

我在单页 webapp 上工作,并且正在实施服务工作者。我了解到我需要手动更新服务工作者,因为单页应用程序没有传统的导航事件,但是,我不清楚clients.claim()和的角色self.skipWaiting()

手动更新 Service Worker 后是否需要调用这些函数?我已经看到skipWaiting()install事件中claim()调用,并在activate事件处理程序中调用。如果我需要其中一个或两个,这些是拨打这些电话的正确位置吗?

0 投票
0 回答
695 浏览

javascript - 如何实现与 Service Worker 和客户端网页的有效双向通信

我想在服务人员和客户端网页之间实现有效的双向通信。

这是我的代码

每次都创建 MessageChannel 对象好吗?

如果我将全局变量用于消息通道对象,那么我会收到此错误

0 投票
1 回答
410 浏览

javascript - 如何判断等待的 Service Worker 是否准备就绪?

根据规范,该ServiceWorker.waiting属性返回对已安装并等待激活的服务工作者的引用。

这可以。但是我如何知道等待的 service worker 何时转换到一个新的状态呢?

返回的服务工作者ServiceWorker.waiting似乎没有任何通知状态更改的必要事件: