问题标签 [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 回答
3405 浏览

javascript - 服务人员不是在现场工作,而是在本地工作

用于实时和本地站点的 sw.js

本地服务人员注册

现场服务人员注册

本地网址

现场网址

请帮忙。我尝试了很多但没有成功。在本地,此代码会缓存所有 css、js、图像和 url,但在实时它只会为第三方调用创建缓存。

0 投票
0 回答
380 浏览

javascript - 如何使用 JSP 页面实现 Service Worker

我的文件结构如下

  • 网络应用
    • 资源
      • 服务工作者.js
    • 网络信息
      • 意见
        • 应用程序.jsp

服务工作者注册代码在 app.jsp 页面内。它正在访问 service-worker.js 文件。但是由于 service-worker.js 和注册代码都必须并行放置,因此 Service Worker 无法正常工作。

0 投票
1 回答
1123 浏览

service-worker - Service Worker 未触发 fetch 事件

如下图所示,我的 Service Worker 处于活动状态,并且我正在获取的文件在 Service Worker 的范围内,但 fetch 事件仍未被触发。

控制台和 <code>sw.js</code> 源码 Service Worker 拦截 fetch 是否还有其他必要条件?

0 投票
3 回答
5616 浏览

javascript - 如何删除本地主机上的服务工作者缓存

请参阅下面的服务人员代码:

我面临的问题是在 chrome 的检查元素中,缓存存储图继续增长在此处输入图像描述 ,当我看到文件资源管理器中的缓存存储时,旧文件夹没有被删除。每次我刷新页面都会创建一个新文件夹。 在此处输入图像描述

每次我更改“CACHE_NAME”(缓存的版本)时,这些加密文件夹都会增加。

请帮忙。我尝试了很多但无法解决它。

0 投票
1 回答
14467 浏览

javascript - 为什么我的 Service Worker 总是在等待激活?

我有这个非常基本的问题

我正在努力了解 Service Worker 的生命周期,或者更好的是,实际上是什么初始化和更改状态。

我现在有2个问题:

1 -chrome://inspect/#service-workers总有 2 或 3 行,显示服务工作者都以相同的 PID 运行。为什么?为什么不是只有一个?

2-当我在刷新时检查我的服务人员时,我得到了这个:

  • 第566章 启动并运行【停止】
  • 第570章 等待激活【skipWaiting】

这意味着什么?什么是 566,什么是 570?我想它们是 sw 的实例,但为什么有两个呢?为什么 570 还在等待?我必须做些什么来确保它会被注册-安装-激活?

3- 一般问题

  • 在正常生命周期中结束安装事件的原因是什么?
  • 在正常生命周期中触发激活事件的原因是什么?

索引.html

sw.js

谢谢!

0 投票
1 回答
486 浏览

service-worker - 识别 FetchEvent 请求的来源/来源

ServiceWorker 有什么方法可以识别 no-cors/opaque 的来源或来源FetchEvent.Request?或者我们是否可以将识别信息/数据从 HTML 显式传递给ServiceWorker可用于识别FetchEvents? 的来源。我使用查询字符串参数破解了一个解决方案,但我正在寻找比这更原生或更优雅的东西:

HTML

服务工作者

0 投票
1 回答
153 浏览

service-worker - Service Worker 或 FetchEvent 可以检测或侦听“停止”事件吗?

Service Worker 能否FetchEvent检测到用户何时触发“停止”事件?例如,用户可以通过单击浏览器的停止按钮(或使用window.stop()JavaScript)来阻止页面加载图像。我希望我的 Service Worker 检测到该事件。

0 投票
0 回答
258 浏览

caching - 服务工作者“安装”事件再次下载应该已经存在于浏览器缓存中的文件

在添加服务工作者和缓存 app-shell 之前,与网页相关的文件(例如 main.css、app.js、shims.js..)的传出请求被浏览器缓存。因此,对这些文件的任何进一步请求都会返回缓存版本(如果 max-age 过期,这些请求将使用 Etag 进行验证),其中也包括带有时间戳的请求。(此行为在页面正常访问期间仍然相同。)

现在网页 (PWA) 首次请求内容。接收到内容后,Service Worker 安装事件开始在后台获取指定文件:

其中一些是从浏览器缓存(磁盘/内存缓存)中获取的,但有些是再次下载的(de.json、en.json、app.js、shims.js、main.css),请参见 attacehd 图像。当从网页执行请求时,所有这些 URI 都包含时间戳,但在进一步请求时仍会从浏览器缓存中返回。

为什么在服务工作者的“安装”事件中获取这些文件时会有所不同?

首次加载 PWA 时的网络请求 - 服务工作者安装时缓存中没有任何内容

顺便说一句,我正在尝试减少整体网络请求,因此再次下载这些文件不是很好..

0 投票
6 回答
34014 浏览

javascript - Firefox:Service Worker:SecurityError:DOMException:操作不安全

app.js中,我正在检查 navigator 对象中是否存在 serviceWorker,如果可用,则注册 SW。

尝试注册 SW 时,我在 Firefox 中收到以下错误。我还确保该service-worker.js文件位于src目录下。

在此处输入图像描述

在 Firefox(版本 59.0.2)中检查我的about:config我启用了 service worker 和 storage api。所以这应该不是问题。

在此处输入图像描述在此处输入图像描述

PS:相同的代码在 Chrome 上运行良好。

0 投票
3 回答
966 浏览

firebase-cloud-messaging - Service Worker - 在 postMessage 之前等待 clients.openWindow 完成

我正在使用服务人员来处理后台通知。当我收到一条消息时,我正在Notification使用self.registration.showNotification(title, { icon, body }). 我正在使用self.addEventListener('notificationclick', ()=>{}). 单击时,我正在检查是否有任何WindowClient打开,如果打开,我将获取其中一个窗口客户端并调用postMessage它以将数据从通知发送到应用程序以允许应用程序处理通知。如果没有我正在调用的打开窗口openWindow,一旦完成,我将使用postMessage.

我面临的问题是,postMessage里面的电话openWindow永远不会送达。我猜这是因为在页面完成加载之前发生的postMessage调用WindowClient,所以 eventListener 还没有注册来监听该消息?那正确吗?

如何从服务人员和 postMessage 打开一个新窗口到该新窗口。