问题标签 [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 - Service Worker 是否支持在线活动?
document.ononline
是浏览器中可用的事件。是否有服务工作者代码支持的等效事件,它没有 DOM 访问权限?
我看到的所有示例代码都会在处理请求的过程中检查网络状态。为了将本地更新提交到服务器或云,最好立即响应网络可用性。
我能找到的最好的文档是https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerGlobalScope,它只列出了这些事件:
- 激活
- 上取
- 安装时
- 留言
- onnotificationclick
- onnotificationclose
- 上推
- onpushsubscriptionchange
- 同步
其中,sync 似乎最像我所寻求的,但它取决于 SyncManager 的使用,并且它的文档充满了反对在生产代码中使用的警告。
javascript - 添加到主屏幕不起作用
我的网站托管在 https 上。它有一个 manifest.json 文件、service-worker.js 和 SW 注册码。但我没有看到来自手机的添加到主屏幕弹出窗口。为什么?这是 index.html 文件:
javascript - 如何跟踪服务工作者中的当前 URL 更改?
我想在我的 PWA 中跟踪用户的活动。是否可以使用当前 URI 在每次网站展示时向我的服务器发送请求?
场景:用户使用当前 URI 打开 PWA -> 请求。用户打开子页面 -> 使用当前 URI 发送请求。
我的示例 service-worker.js:
javascript - 如何在 Firefox 中启动 Service Worker?
我正在尝试学习如何制作 Service Worker,虽然它在 Chrome 中按预期工作,但由于某种未知原因,它在 Firefox v56 中不起作用。这是应该在任何地方都可以使用的演示https://mdn.github.io/sw-test/
这是演示服务工作者代码
当我打开开发者控制台时,我得到这个错误:
"Registration failed with TypeError: ServiceWorker script at https://mdn.github.io/sw-test/sw.js for scope https://mdn.github.io/sw-test/ encountered an error during installation."
同时,同样的代码在 Chrome 中也能正常工作。
在about:config
设置dom.serviceWorkers.enabled
中设置为true
。我还禁用了所有插件,但它仍然无法正常工作。
可能是什么问题呢?
javascript - 服务工作者错误:事件已响应
我不断收到此错误:
未捕获(承诺中)DOMException:无法在“FetchEvent”上执行“respondWith”:该事件已得到响应。
我知道如果 fetch 函数中发生异步操作,服务人员会自动响应,但我无法确定这段代码中的哪一位是违规者:
任何帮助,将不胜感激。
javascript - 在前端检测 Service Worker 激活
是否有可能在不使用间隔方法的情况下检测前端新服务人员的激活(而不是安装!)?
javascript - 为什么服务人员离线模式不起作用
我正在尝试为该应用程序提供离线访问。但是代码不起作用。
正在创建缓存并存储所有文件,但是当我在离线模式下重新加载页面时,只加载数据,没有应用任何样式。
镀铬版本:版本 61.0.3163.100
// 应用程序.js
// 服务工作者 js
service-worker - 如何使用工作箱服务工作者工具允许 cookie 和处理 302 重定向?
我有一个基于 SSR 的反应应用程序,目前正在实施 Workbox 工具,用于预缓存和离线功能。我遇到问题主要是因为该站点依赖于服务器端的 cookie 并基于这些发出重定向。
初始加载工作正常,但是一旦服务工作者(sw)在线并且另一次刷新导致 sw 使用来自工作箱源中的 url 进行 fetch 调用。在此期间,服务器找不到 cookie(获取不携带凭据 -链接)并发出重定向(302)到不同的 url(这使您可以在 cookie 中设置一些选项并刷新旧 url)。
这会导致客户端出现以下错误
The FetchEvent for "http://localhost:8080/" resulted in a network error response: a redirected response was used for a request whose redirect mode is not "follow".
服务器发出重定向为 302 状态,但客户端导致:
site can’t be reached The web page at http://localhost:8080/ might be temporarily down or it may have moved permanently to a new web address. ERR_FAILED
这是我的服务工作者代码,资产由 workbox-webpack 插件填充。
PS 这是我第一次尝试使用工作箱工具或服务人员,我可能错过或忽略了一些细节。请指出我的方向。
service-worker - 服务人员传播
我有一个用于缓存图像的服务工作者,这个服务工作者只在前端模板中注册,但它仍然不断扩散到我的管理模板中。
这会导致我的表单在验证令牌受到影响时表现出不可预测的行为。
使用一些console.log,我认为在到达请求的页面之前触发了安装事件,但我无法确定那里的当前/下一个URL。
如何防止服务人员传播到管理面板并干扰页面?我只想缓存资产。
就相关而言,这是我的服务人员:
javascript - Service Worker 创建问题:ERR_CONNECTION_REFUSED
我正在尝试创建我的第一个服务人员(已将我的本地服务器离线以测试该状态)。我在一个名为 app.js 的文件的顶部编写了以下代码:
然后在 serviceworker.js 文件中我有:
这是我在网页上得到的:
无法访问此站点
无法访问此站点
localhost 拒绝连接。
在 Google 上搜索本地主机 8443
ERR_CONNECTION_REFUSED
这是我在 Chrome 控制台中看到的消息:
07:42:35.401 导航到 chrome-error://chromewebdata/
07:42:36.453 获取脚本时发生未知错误。
07:42:36.453 localhost:8443/serviceworker.js 加载资源失败:
净::ERR_CONNECTION_REFUSED