【问题标题】:Service worker vs HTML5 Cache: either or服务工作者与 HTML5 缓存:要么或
【发布时间】:2018-06-01 13:11:51
【问题描述】:

我需要一个网站来缓存数据。并设置了 Cache Storage(通过 Service Worker)和 Application Cache(通过 html manifest 属性)。他们工作。

我的问题是:如果浏览器上存在服务器工作者支持,如何忽略应用程序缓存?

互联网上的一些阅读表明,如果缓存存储工作正常,Chrome 会忽略应用程序缓存。我发现它没有。 Mac OS X 上的 Chrome 63

一个选项似乎是根据浏览器和操作系统类型在服务器上创建一个动态页面(保留清单属性或不保留)。有没有更好的办法?谢谢

【问题讨论】:

    标签: service-worker html5-appcache


    【解决方案1】:

    一旦服务工作者被激活,它控制的客户端页面的任何现有应用程序缓存实例都将自动取消关联。此行为在 service worker specification 中的激活算法的第 6 步中进行了描述:

    对于每个创建 URL 匹配的服务工作者客户端客户端 注册范围网址:

    1. 如果客户端是窗口客户端,取消关联客户端的责任 应用程序缓存中的文档(如果有)。

    2. 如果客户端是共享工作客户端,则取消关联客户端的全局 应用程序缓存中的对象(如果有)。

    如果您没有看到这种行为,并且您确定 service worker 已激活并且可以控制给定的客户端窗口,那么这听起来像是浏览器实现中的错误。您应该在相应浏览器的错误跟踪器上跟进有关重现步骤的详细信息。

    【讨论】:

    • 谢谢杰夫。我确实注意到了这种行为。但是从你们的cmets让我一步一步地再试一次并确认它。也将在这里分享所有细节。谢谢
    • 我已经纠正了@Jeff Posnick。也许,应用程序缓存来自较早的设置。谢谢。现在两种浏览器类型的双重缓存策略都可以使用。
    猜你喜欢
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 2016-10-15
    • 2020-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多