html5 – 应用程序缓存还是服务工作者 – 将在2016/Q2使用?

前端之家收集整理的这篇文章主要介绍了html5 – 应用程序缓存还是服务工作者 – 将在2016/Q2使用?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
真的很快就要讨论了,因为我想得到不同人的意见。

我正在开发一个必须离线可用的网页应用程序。

现在要做到这一点,据我所知,您将使用应用程序缓存功能或使用服务工作者。

但是,这是我的难题。在研究应用程序缓存时,the MDN clearly states

Deprecated:
This feature has been removed from the Web standards. Though some browsers may still support it,it is in the process of being dropped. Do not use it in old or new projects. Pages or Web apps using it may break at any time.

之后,另一个对话框建议使用服务工作者。

The Service Workers page然后继续说明服务工作者是一种实验性技术,最好参考兼容性表。

兼容性表说Safari和Internet Explorer不支持Service Workers。进一步咨询this site,并假设它是准确的,它表示微软已经开始整合服务工作者的工作,但对于Safari,他们“正在考虑”“五年计划中的短暂积极信号”。

现在这是当前项目的一个问题,因为它必须与Safari兼容,但是,我也不希望它在其他浏览器中破解。

你的建议是什么?只需使用较旧的应用程序缓存并在不久的将来更新?确定用户浏览器并采取适当的行动?或者,我还有另一种方法吗?

解决方法

你是对的, appcache is becoming unsupported

还有其他选项可以在IDB中存储数据和/或资产,例如:

> Offline Web Applications with CouchDB,PouchDB and Emeber CLI
> Ember-Pouch
> Offline apps using Ionic Framework,PouchDB and AngularJS

有关更多示例,请尝试使用Google搜索offline pouchdb ember”或“offline pouchdb angular”。

现在确保脱机可用性的唯一机制是服务工作者和appcache。期。

所有这些技术都依赖于您的站点是单页面应用程序和可访问的入口点。因此,如果您不使用appcache或服务工作者来确保始终可以访问入口点,则必须回退到http缓存并在提供资产时正确设置cache-related headers。无论如何,UA可以随时驱逐http缓存。

面对这个决定,如果应用程序必须离线运行并在Safari中运行,唯一的选择是使用appcache(AFAIK,没有关于从Safari中删除appcache的消息)。

为了降低风险,除了appcache之外,您还可以选择结合以前的技术之一(在IndexedDB上存储资产的技术),因此您缓存的唯一内容是SPA的入口点。如果appcache不受支持且没有服务工作者替代方案,您可以切换到缓存标头替代方案。

无论如何,您可以使用功能检测(if(导航器中的’serviceWorker’){…})来查看服务工作者是否可用并在必要时使用它。有一个基于服务工作者的appcache的polyfill叫做JakeCache(未测试)和others are to come

原文链接:https://www.f2er.com/html5/168902.html

猜你在找的HTML5相关文章