问题标签 [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.
promise - Service Worker 同步事件未触发
我在 indexedDB 中保留离线发布的评论并与服务人员注册同步,但是一旦重新上线,除非我发布新评论,否则同步不会触发。经过一些研究,我认为这是由于 event.waitUntil 函数中的链式承诺而发生的。也许有人可以引导我朝着正确的方向前进:
在任何时候我都得到
service-worker - 何时以及如何在 service worker 中触发同步事件?
我在如何以及何时触发同步事件方面遇到了一些问题。这是由用户进行某种输入引起的吗?我似乎在 Google 的开发文档中找到了有关当您再次联网时触发同步事件的内容(如果您失去了互联网)。这是台式机的情况吗?还是仅适用于移动设备?
javascript - 用 fetch 事件替换 service worker 中的资产
我正在尝试与我的服务人员热切换主题样式表。
我为 Jekyll 创建了一个主题(与 GitHub Pages 一起使用),并希望能够在深色主题和浅色主题之间进行替换(“关灯”)并使其保持一致。
现在,这是通过将状态保存到localstorage
并据此替换主题link
元素来实现的。
问题是,在获取原始白色主题之后进行检查,因此即使localstorage
设置了深色主题,用户也会看到白色主题的闪光
这是它目前的行为方式(按钮位于右上角): https ://thatkookooguy.github.io/postmortem-demo/postmortem/002
更改主题后,尝试导航到另一个页面。页面以白色主题加载,然后更改为深色主题
我想我可以通过在服务工作者中切换脚本来解决这个问题,因为我可以addEventListener
到fetch
事件并用另一个提取替换它在承诺链中。
但是代码似乎不起作用。如果我在事件回调中添加一个调试点,它永远不会触发(不是在资产上,也不是在实际页面获取上)
HTML头
服务工作者代码
在 chrome 中调试时(和 chrome canary,因为我听说那里有更好的 service worker 调试支持),fetch
甚至从未调用过回调。没有记录任何请求。
我确实看到服务人员在 chrome 的开发工具中注册并处于活动状态。我看到控制台中记录了其他事件。
此外,当调试并在脚本开头放置断点时,看起来好像bulmaswatch.min.css
已经获取了。
知道我错过了什么吗?:-)
谢谢
javascript - 如何让服务人员仅在第一次访问时注册?
嗨,我在 express 上有一个生成 HTML 的 ejs 模板。我已经在此模板中编写了我的服务工作者注册代码,该模板对网站的所有页面都是通用的,因此,注册代码最终会出现在网站的每个页面上。因此,在每次用户访问时,都会运行服务工作者注册代码,我认为这很糟糕。如何使此代码仅在用户第一次访问时运行?
请在下面找到我的代码:
javascript - 在 Service Worker 中缓存跨域资产
我有域https://test.com。以下是我的服务人员代码
我需要缓存跨域资产。上面的代码抛出 Failed to load https://otherdomain.com/planet-styles.min.css:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问来源“ https://test.com ”。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。
html - 移动 Web 推送通知上的用户操作
是否可以使用服务工作者为移动网络创建类似应用程序的推送通知?(例如,用户可以从通知中回复聊天消息)
service-worker - Service Worker w offline.html 备份页面
我无法显示offline.html 页面。我不断得到The FetchEvent for "https://my-domain.com" resulted in a network error response: a redirected response was used for a request whose redirect mode is not "follow"
.
这是我的 service-worker.js 的片段,它应该offline.html
在网络不可用时返回。
下面是我的网络请求的console.log(离线时页面刷新)
javascript - PWA 没有更新缓存,我使用的是网络回退到缓存的方法
我在我的 sw.js 文件中尝试了以下代码,但它没有将更新的响应存储在缓存中。它在在线时显示更新的响应。但是当我下线时,它返回的响应与我第一次访问时相同。
我遵循以下参考 https://developers.google.com/web/ilt/pwa/caching-files-with-service-worker
laravel-5.3 - Service Worker fetch 事件永远不会被触发
我正在使用 Laravel 开发渐进式 Web 应用程序。我已经将PWA 推荐给 Laravel进行开发。首先我生成了服务工作者,然后在设置清单文件之后更新了 laravel mix。在布局中,我检查了服务工作者和推送通知支持。注册 service worker 后, install 和 activate 成功触发,但即使浏览器设置为脱机(如图像浏览器脱机),也不会触发 fetch 事件。也参考了这个视频PWA LARAVEL。package.json 文件的代码如图所示: webpack.config.js 文件的package.json代码为:webpack.config.js,blade(view) 中注册Service Worker的部分代码为:服务工作者注册。Service Worker 是在我的 laravel 项目的公共文件夹中生成的。我是 Laravel 和 PWA 的新手。谢谢你。
progressive-web-apps - self.addEventListener('fetch', function(e) { }) 不工作
我对 PWA 有疑问,如果有人帮助我,我会很高兴。在我的 PWA 中,存储 HTML、JS 和 CSS 等静态文件没有任何问题。但我面临动态数据的问题。即:我self.addEventListener('fetch', function(e) { })
没有被调用,但其他功能工作正常,即:“安装”和“活动”事件。
更具体地说,我使用@angular/service-worker
的效果很好,但我创建了另一个名为sw.js
. 在我sw-js
的情况下,我正在听诸如“安装”、“活动”和“获取”之类的事件。我的sw.js
fetch 没有被调用,而其他两种方法运行良好。但是在ngsw-worker.js
单独获取 fetch 方法时会被调用。
我需要的是在 PWA 中使用 Angular 进行 CRUD 操作。
提前致谢!