HTML 5“离线网络应用程序”中的新功能尚未在所有浏览器中提供?

时间:2011-06-16 12:12:49

标签: html5 offline-browsing offline-caching

HTML 5的“离线网络应用程序”功能有哪些新功能尚未在所有浏览器中提供?

离线缓存是浏览器的工作 - 它是如何成为HTML的工作的?

  

Web缓存是一种机制   Web的临时存储(缓存)   文档,例如HTML页面和   图像,以减少带宽使用,   服务器负载和感知滞后。网络   缓存存储文档的副本   穿过它;随后   请求可能会满足   如果满足某些条件,则缓存。

正如维基百科关于Web cache的文章所述。

这是为W3C网站中的离线网络缓存编写的:

  

为了让用户能够继续   与Web应用程序交互和   文件甚至在他们的网络上   连接不可用 - for   例如,因为他们正在旅行   在ISP的覆盖范围之外 -   作者可以提供一个清单   列出所需的文件   Web应用程序脱机工作   并导致用户的浏览器   保留文件的副本以供使用   脱机。

什么是HTML 5在缓存方面做得更好和不同?

它与offline mode in Internet Explorer 5相似吗?我们可以将数据缓存超出浏览器中设置的空间限制吗?

请举个例子,以便我了解HTML 5离线缓存和浏览器缓存的区别。

2 个答案:

答案 0 :(得分:2)

Web浏览器缓存是指浏览器决定在本地存储文件以提高性能。 HTTP允许Web服务器向浏览器建议存储文件的时间,并允许浏览器询问服务器文件是否已更改(以便它们可以避免重新下载)。

但是,它并非旨在可靠地存储离线应用程序所需的资产。它最终取决于浏览器是否以及多长时间来缓存文件。如果浏览器无法联系服务器以检查它是否是最新版本,浏览器通常会停止使用其缓存版本。

HTML5离线Web应用程序规范为Web作者提供了告诉浏览器存储哪些内容以供脱机访问的功能,并要求浏览器在这些文件处于联机状态时使这些文件保持最新。它还提供了一个DOM属性,告诉开发人员浏览器是在线还是离线,以及在线状态发生变化时触发的事件。

As Peeter describes in his answer,这允许Web应用程序开发人员在用户离线时存储用户输入的数据,然后在他们再次联机时与服务器同步。开发人员必须手动执行此存储和同步,因为浏览器仅提供指示在线状态的事件,但如果浏览器也支持localStorage,则开发人员可以将数据存储在那里。

我最好不要指向潜入HTML5的相关章节:http://diveintohtml5.ep.io/offline.html

答案 1 :(得分:1)

您现在可以缓存动态数据,而不仅仅是js / css / html文件/图像。

假设您在浏览器中打开了待办事项列表应用程序。您已连接到互联网,并且您正在添加一些您必须要做的事情。

砰的一声,你在没有连接的飞机上。你有6个小时的时间杀死所以你决定完成一些工作。您完成了待办事项列表中的所有内容(列表仍在浏览器中打开)。您选择所有项目并将其状态更改为“已完成”。

您的飞机着陆,您打开笔记本电脑并刷新页面。现在,您在没有连接的情况下所做的所有更改都会同步到服务器,因为您现在已经建立了互联网连接。