【问题标题】:get service worker id or date from within service worker从服务人员中获取服务人员 ID 或日期
【发布时间】:2017-12-06 19:55:05
【问题描述】:

有人知道是否有办法在服务人员内部获取此号码或日期:

将我的 Service Worker 缓存命名为 cache-1182cache-20171127171448 会很方便

我猜接收日期必须在安装事件之前知道。

【问题讨论】:

  • 嗯。我是否遗漏了什么,或者您是否应该只是在构建过程和 SW 生成过程中生成缓存名称(字符串)?
  • 这就是他们告诉你的方式(以及我现在的方式),但我想知道是否有更简单的方法。
  • 啊,好的。有什么问题?我的意思是,如果您有一个构建过程可以以任何方式处理所有资产生成、命名等,它会自动更改缓存字符串,对吗?什么可以变得更容易?
  • 好吧,浏览器已经计算出服务工作者是否发生了变化,所以构建过程也必须解决这个问题,这太糟糕了。也很难将 webpack 散列到 javascript 代码中。因此,尽管有很多可用的解决方案,但如果有办法获取这些信息,并且如果有人知道它对很多事情都非常有用。确定它是否不可能也是有用的。
  • 啊,是的。我明白。我希望您使用 Workbox 等插件来简化构建步骤。

标签: service-worker


【解决方案1】:

不,Service Worker specs 中不存在这个东西,所以我们必须假设它是 Google Chrome 的内部实现细节,因此无法访问。

为简化起见,您可以使用安装时间戳作为版本号,然后在标有最新时间戳的缓存中查找缓存资源。您可以使用caches.keys() 检查所有缓存键。

【讨论】:

    猜你喜欢
    • 2019-04-21
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    • 2018-10-30
    • 1970-01-01
    • 1970-01-01
    • 2021-09-22
    • 2020-01-14
    相关资源
    最近更新 更多