问题标签 [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.
service-worker - 自定义@angular/service-worker
如何自定义@angular/service-worker?我知道这不是在 npm_modules 文件夹中修改的合适方法。我遇到了一个教程,作者在其中创建了另外 2 个 js 文件。其中一个文件包含服务工作者代码,而另一个包含“importScripts()”以导入 ngsw-worker.js 文件和自定义服务工作者文件。它工作正常,自定义服务工作者侦听安装事件,但是当涉及到 fetch 事件时,它没有通过这个 fetch 事件侦听器。我没有在这个函数中得到控制台。我不知道为什么会这样。有人知道实现这一目标的原因或任何其他解决方案吗?
这是我遵循的教程的链接, 教程
caching - 如何缓存服务工作者源文件至少 24 小时
是否有可能将 service worker 源文件缓存至少 24 小时?我试过提供缓存控制:public,max-age=1440。但它不起作用。
此外,如果页面包含 iframe,并且您单独重新加载该 iframe,则将从服务器下载 sw.js(服务工作脚本)。
知道为什么会这样吗?如何避免这种情况?
javascript - TypeError: 无法注册 ServiceWorker: 获取脚本时收到错误的 HTTP 响应代码 (404)
我正在尝试向网站添加服务人员。我将 Node.js 与 Express.js、Vue.js 和 EJS 一起使用。^
我的节点服务器(index.js)看起来像:
home.ejs 文件看起来像:
我不得不提到我正在 https 上对其进行测试。我不认为 ServiceWorker.js 的内容很重要,但是如果您需要它来帮助我,我也可以发布它。服务器文件方案如下所示:
当我在 https 上打开网站时,我在 Web 控制台中收到以下错误:
javascript - Service Worker:错误捕获(在 Promise 中)TypeError:请求方案“数据”不受支持
发生的情况是在第一次加载网站时,获取和缓存不会遇到任何问题。但是,在刷新(正常重新加载)时,Fetch 事件会遇到问题并在控制台日志中显示。
未捕获(承诺中)类型错误:self.addEventListener.e.respondWith.fetch.then.caches.open.then.cache 不支持请求方案“数据”
我意识到在重新加载时它会获取format data:[<mediatype>][;base64],<data>
导致控制台日志中错误的 a 。
我想避免这个错误,但我不知道如何。
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 事件仅在我单击收到的最后一个通知时调用!!!!!!!!!!!!
reactjs - Service Worker 是如何工作的?
我是渐进式网络应用程序的新手。我已经为我的 react PWA(渐进式 Web)应用程序完成了这个惊人的教程和设置。
现在这是我的serviceworker.js文件
但无法理解它是如何工作的?任何人都可以帮忙在这里注册,取消注册和其他功能吗?
请帮忙!!!
angular - 如何使用服务人员以角度访问本地存储?
好的,现在我正在开发 Angular 6 webApp,它首先处于离线状态。我能够设置一个功能齐全的服务工作者,它可以检索和存储请求和响应等等。但是,有一次,在注册同步事件时,我需要刷新令牌,这些令牌存储在我的 web 应用程序的本地存储中。问题是不允许服务人员直接访问本地存储,这意味着我无法访问驻留在本地存储中的令牌。我如何使用某些 api 在服务人员中使用本地存储,或者是否有任何实现我想要做的其他策略(通过重播失败请求的 fetch 调用并附加更新的令牌来执行同步事件,以便数据通过适当的授权同步)。我什至想用 postmessage() API 尝试它,但它不是
single-page-application - 在单页 webapps 上更新 service worker
我在单页 webapp 上工作,并且正在实施服务工作者。我了解到我需要手动更新服务工作者,因为单页应用程序没有传统的导航事件,但是,我不清楚clients.claim()
和的角色self.skipWaiting()
。
手动更新 Service Worker 后是否需要调用这些函数?我已经看到skipWaiting()
在install
事件中claim()
调用,并在activate
事件处理程序中调用。如果我需要其中一个或两个,这些是拨打这些电话的正确位置吗?
javascript - 如何实现与 Service Worker 和客户端网页的有效双向通信
我想在服务人员和客户端网页之间实现有效的双向通信。
这是我的代码
和
每次都创建 MessageChannel 对象好吗?
如果我将全局变量用于消息通道对象,那么我会收到此错误
javascript - 如何判断等待的 Service Worker 是否准备就绪?
根据规范,该ServiceWorker.waiting
属性返回对已安装并等待激活的服务工作者的引用。
这可以。但是我如何知道等待的 service worker 何时转换到一个新的状态呢?
返回的服务工作者ServiceWorker.waiting
似乎没有任何通知状态更改的必要事件: