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

服务工作者缓存的资产的寿命是多少?

凤扬
2023-03-14

我读过的一些文章建议由ServiceWorker(WebCacheAPI)缓存的项永远存储在系统中。我遇到过这样一种情况,当用户在很长一段时间后重新访问我的网站时,一些缓存的资源会被自动收回(~

如果是这种情况,那么浏览器如何决定它必须删除哪些资源?我是否可以告诉浏览器,如果它正在从缓存中删除某些内容,则删除使用相同缓存名称缓存的所有内容?

共有1个答案

公良天逸
2023-03-14

它似乎永远持续,直到它不:)(即存储空间低)https://developers.google.com/web/ilt/pwa/caching-files-with-service-worker

您负责实现脚本(服务工作者)如何处理缓存的更新。必须显式请求对缓存中项的所有更新;项不会过期,必须删除。但是,如果缓存的数据量超过浏览器的存储限制,浏览器将开始逐个清除与原点相关的所有数据,直到存储量再次超过限制。有关详细信息,请参阅浏览器存储限制和逐出标准。

如果它们的存储空间不足,则可能会被逐出:(请参阅存储限制)https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Browser_storage_limits_and_eviction_criteria

 类似资料:
  • 我有一个基于service worker的离线应用程序,允许用户离线下载pdf文件。 有一个文本文件,其中包含pdf文件的下载路径和特定格式的文件标题(以及css、js和图像路径),应用程序通过ajax读取此文本文件并绘制所有可用pdf文件的列表(通过显示标题和下载链接) 在安装过程中,工作人员读取相同的文件,并将所有pdf文件与文本文件一起放入缓存中,以便这些文件可以离线访问。 当我用一些新的p

  • 因此,我有一个带有服务工作者的HTML页面,服务工作者缓存索引。html和我的JS文件。 问题是当我更改JS时,更改不会直接显示在客户端浏览器上。当然,在chrome开发工具中,我可以禁用缓存。但是在Chrome Mobile,我该怎么做呢? 我试图访问站点设置并点击CLEAR%RESET按钮。但它仍然从缓存加载旧页面/加载。我试图使用其他浏览器或铬隐姓埋名,它加载新的页面。 然后,我尝试清除我的

  • 我正在使用Service Worker创建一个渐进式Web应用程序,我正在使用Service Worker工具箱来缓存我的内容。Service Worker代码来缓存我的内容: 代码运行正常,因为我在控制台上没有看到任何错误。但是我如何检查是否从云前或上面配置的网址的图像正在缓存和从缓存本身渲染。

  • 我们在reactjs应用程序中安装了离线插件,该应用程序使用service worker缓存构建文件,未检查新构建的任何更新,因此,具有旧构建的用户仍在使用service worker中的缓存数据访问旧站点。这些文件没有过期设置,所以我想知道是否有任何解决方案可以强制用户刷新页面或将更新推给用户? 我在新版本中进行了更新,没有缓存头,离线插件自动更新,但我仍然无法找到将此更新推送到旧用户文件的方法

  • 我正在拦截并从Service Worker缓存返回资源。根据谷歌Chrome开发工具,下载内容需要大约300-400毫秒。我在火狐中检查过,下载是即时的。 我预计下载时间会小得多,因为不涉及网络。我使用常用的函数截取: 我拦截并从缓存返回资源的方式是否有问题?

  • 我试图安装一个简单的ServiceWorker,但旧的,Django Web应用程序。我开始使用Chrome团队的示例读取缓存示例 这很好,但并不理想,因为如果需要,我想更新缓存。根据阅读此处所有其他服务人员的答案,有两种推荐方法。 > 使用一些服务器端逻辑来知道您显示的内容何时更新,然后更新您的服务辅助角色以更改所述内容。例如,这就是sw-preache所做的。 只要在需要更新资源时更新serv