Service Worker 是打算取代 Appcache 还是与 Appcache 共存?

Posted

技术标签:

【中文标题】Service Worker 是打算取代 Appcache 还是与 Appcache 共存?【英文标题】:Is Service Worker intended to replace or coexist with Appcache? 【发布时间】:2015-04-01 01:13:27 【问题描述】:

ServiceWorker是打算取代Appcache,还是打算两者共存?换句话说,appcache 是否即将被弃用?

【问题讨论】:

【参考方案1】:

Blink 的 Service Worker 团队热衷于弃用 AppCache(我们将遵循我们通常的 intent to deprecate process)。我们相信 Service Worker 是一个更好的解决方案。此外,为构建在 SW 之上的 AppCache 提供一个替代品应该很容易。我们将从收集usage metrics 开始并进行一些宣传。

AppCache 和 Service Worker 应该可以毫无问题地共存,因为通过 AppCache 为不支持 Service Worker 的浏览器提供离线支持是一个有效的用例。 @flo850 如果它不起作用,请通过filing a bug 告诉我们。

【讨论】:

感谢您的回答,健二! Blink 的 Service Worker 团队会等到大多数浏览器都支持 Service Worker 后再这样做,还是会继续进行? 计划是查看我们的使用指标。我们只会计算实际使用 appcache 的页面加载(注意:如果存在的话,Service Worker 将优先于 AppCache)。 使用 AppCache 更新就像更改文件一样简单。另一方面,Service Worker 需要我们处理缓存,跨浏览器差异使用 polyfill 等。较新的 Chrome(目前)功能需要 Service Worker。有人知道是否有人已经做过这种“直接替换”吗? 对不起,重复的评论,但是,此外,由于 Kenji Baheux 在上面的评论中引用的行为我不能简单地同时使用这两个功能,即:简单的 appcache 更新过程沿新的服务工作者功能。一个简单地取消另一个。 @GustavoRodrigues 这是不正确的。他们很好地共存。您只需要使用特征检测来加载一组离线逻辑,而不是同时加载。【参考方案2】:

我必须说Services Worker is not only the replacement for AppCache, but it’s far more capable. AppCache 不能部分更新,触发更新的逐字节清单比较似乎很奇怪,并且有几个用例导致安全性和严重的可用性问题。

Even Chrome and Firefox are planning to stop support for AppCache in the near future. 现在,Chrome、Opera 和 Firefox 都支持 service worker。此外,来自 Microsoft 和 Safari 的声音在实施和考虑方面都是积极的。

【讨论】:

【参考方案3】:

作为缓存工具,它将与appcache共存。 Appcache 几乎适用于所有浏览器。

但是服务工作者是一个坚实的基础,它允许新的使用,如推送(即使浏览器在后台)、地理围栏或后台同步。

【讨论】:

感谢您的回答。你有它共存而不是被取代的来源吗? 并非如此,但仅在最新版本的 chrome 和 firefox 上支持 service worker。广泛使用是不够的。另一方面,让 appcache 和 service worker 一起工作可能非常棘手

以上是关于Service Worker 是打算取代 Appcache 还是与 Appcache 共存?的主要内容,如果未能解决你的问题,请参考以下文章

Service Worker 与 Web Worker

一句话总结Web worker,Service worker和worklet

一句话总结Web worker,Service worker和worklet

service worker

如何通过 cdn 脚本注册 service worker。如何使用外部 url 注册 service worker

使用Service Worker和离线缓存Cache