情况:
在我的网站上。com/game,我在
navigator.serviceWorker.register('/service-worker.js',{范围: "/"});
在我的服务器上,“/service worker。js'
的最大值为1d
。
问题:
服务人员。js有一个主要的bug。它总是显示一个空页面,无法获取任何内容<代码>服务人员。必须更改js
。
问题是,每当用户访问mywebsite时。com/game
,它显示空页面,不再执行任何操作。我无法让客户端获取新的服务工作人员。js
。
如何让客户端获取新的service-worker.js
?
加上?v=1到您的脚本,如下所示。
navigator.serviceWorker.register('/service-worker.js?v=1', {scope: "/"});
并在更改Service Worker脚本时增加脚本版本数
您正在描述的内容—检查/service worker的更新。js
-在本文所述的情况下,默认情况下自动发生:
如果发生以下任何情况,将触发更新:
所有现代web浏览器都将忽略您在/service worker上设置的任何
,并直接针对web服务器获取最新副本。缓存控制
标题。默认情况下,js
这个堆栈溢出答案有一些最佳实践,说明如果您希望修订后的service-worker.js
文件表现得像一个“杀死开关”,它应该包含什么
我一直在阅读《html5rocks服务工作者简介》一文,并创建了一个基本的服务工作者,它可以缓存页面、JS和CSS,并按预期工作: 当我对CSS进行更改时,由于服务人员正在从缓存中正确返回CSS,因此不会拾取此更改。 我陷入困境的地方是,如果我要更改HTML、JS或CSS,我如何确保服务人员可以从服务器加载较新版本,而不是从缓存加载?我曾尝试在CSS导入上使用版本戳,但似乎不起作用。
有一个问题,我们的一些用户有一个错误的服务工作者坐在他们的Facebook浏览器从我们的网站。 问题:Facebook App用户在访问我们在FB上共享的页面时,会在FB浏览器上看到我们的“您离线页面”。 错误似乎是旧版本的Google Workbox(3.6.1)使用Chrome75自动返回FB应用程序中的您离线页面。更新Workbox修复了它。 对Workbox的引用在service work
我遵循angular的官方指南,成功安装了初始服务人员。接下来,我想尝试一下更新行为,得到了一个 无法读取未定义的属性id 其中as id指ngsw-worker.js方法中的client.id 我做的步骤是 注册SW,离线并重新加载(工作),关闭标签,但保持窗口打开 app.cmp.html更新代码 重建项目(ng build--prod) 打开新的Tab和应用程序(可以观察SW更新) 重新加载
根据MDN上的本文件: 之后,每隔24小时左右下载一次。它的下载频率可能会更高,但必须每24小时下载一次,以防止糟糕的脚本被打扰太久。 Firefox和Chrome也是如此吗?还是只有当用户导航到站点时才会更新服务人员javascript?
我使用sw-precache生成Polymer-CLI构建过程中的服务工作,因此它旨在更新更新文件的散列,以表示需要更新缓存。但是缓存中没有替换我更新的内容,因此如果我使用ctrl-r刷新,它将获得旧版本,但如果使用ctrl-shift-r刷新,它将获得新版本。原因可能是我的服务人员没有更新。 这份文件说 如果与当前相比,服务辅助程序文件中甚至有一个字节的差异,它就认为它是新的。 ,但如果我的新服
需要更新时钟小部件的TextView每秒或每分钟变化。 我正在从AppWidgetProvider的onReceive调用服务: 我应该做什么来检查更新的时间,如果有,然后更新‘时间’文本视图… 任何一种都是非常非常非常感谢的