当前位置: 首页 > 知识库问答 >
问题:

在缓存中保存一个服务人员有意义吗?

胡国兴
2023-03-14

从我的Service Worker中,我在浏览器缓存中保存了一些资产,以及Service Worker脚本本身,它工作正常,这样我就可以在我的devols缓存选项卡中看到Service Worker url和所有其他资产。

现在,当我脱机时,我的服务人员将侦听fetch事件并从缓存中获取所有资产。

但是,当页面尝试注册工作程序本身时,似乎没有获取事件,因此我在控制台中遇到以下错误:

控制台错误

控制台erorr

我是不是漏了什么?毕竟,缓存服务工作人员脚本本身有意义吗?

共有1个答案

樊腾
2023-03-14

根据更新算法的规范(运行更新算法也是为了注册)。在第7.2点:

将请求的跳过服务工作者标志和请求的重定向模式设置为“错误”。

这意味着您的服务人员请求将永远不会通过服务人员。相反,它根据自己的规则缓存在自己的缓存中。您所看到的错误是浏览器尝试获取新版本的service worker失败。

正如杰夫·波斯尼克在他的回复中所说,你可以放心地忽略这些错误。

 类似资料:
  • 在Chrome中,我的react service worker(使用CRA创建)被永久缓存并服务于旧版本。硬重新加载不会改变任何东西。如果我在开发工具中手动选择bypass for network来修复问题,但显然这不是一个适用于客户端的解决方案。我们的应用程序由Apache提供。基本上,我想知道在这种情况下指定

  • 问题内容: 我想使用Promises在AngularJS中实现静态资源的动态加载。问题:我在页面上有几个组件,这些组件可能(或不依赖于所显示的内容,因此是动态的)需要从服务器获取静态资源。加载后,可以在整个应用程序生命周期中对其进行缓存。 我已经实现了这种机制,但是我对Angular和Promises还是陌生的,所以我想确保这是否是正确的解决方案。 因此,仅发出一个请求,并且所有对loadData

  • 问题内容: 我读过,为避免在nodejs中缓存,必须使用: 但是我不知道如何使用它,因为当我在代码中添加该行时会出错。 我的功能(我认为我必须不编程缓存)是: 有人知道如何在我的代码中不放置任何缓存吗?谢谢 问题答案: 您已经编写了标题。我认为您完成此操作后无法添加更多内容,因此只需将标题放在第一个对象中即可。

  • 本文向大家介绍如何在 Java 中实现一个 redis 缓存服务,包括了如何在 Java 中实现一个 redis 缓存服务的使用技巧和注意事项,需要的朋友参考一下 缓存服务的意义 为什么要使用缓存?说到底是为了提高系统的运行速度。将用户频繁访问的内容存放在离用户最近,访问速度最快的地方,提高用户的响应速度。一个 web 应用的简单结构如下图。 web 应用典型架构 在这个结构中,用户的请求通过用户

  • 我很难让我的angular5服务人员工作。我有两个主要问题: 服务工作者不缓存用作背景图像的资产图像 在模拟网络断开连接后,服务工作人员最初从缓存中提取文件(除了前面提到的非缓存文件),但在第二次刷新后,它会遇到错误。 下面是我的问题的更详细的报告。您可以通过克隆我所做的回购来强调这个问题。 我创建了带有--service-Worker标记的应用程序。然后我确保了Angular留档中列出的5个步骤

  • 我已经使用GSS-API创建了2个演示Kerberos客户端。一个在Python3中,第二个在Java中。这两个客户端似乎大体上是等效的,并且都“工作”,因为我得到了一个服务票据,该票据被我的Java GSS-API服务主体所接受。 然而,在测试中,我注意到Python客户端将服务票据保存在kerberos凭据缓存中,而Java客户端似乎没有保存票据。 我使用“klist”查看凭证缓存的内容。 我