3

HTML 5 的“离线 Web 应用程序”功能有哪些新功能,但并非所有浏览器都可用?

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

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

正如 Wikipedia 的Web 缓存文章中所写。

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

为了使用户即使在网络连接不可用时也能继续与 Web 应用程序和文档进行交互——例如,因为他们在 ISP 的覆盖范围之外旅行——作者可以提供一个清单,其中列出了 Web 所需的文件应用程序脱机工作,这会导致用户的浏览器保留文件的副本以供脱机使用。

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

它类似于Internet Explorer 5 中的离线模式吗?我们可以缓存超出浏览器空间限制的数据吗?

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

4

2 回答 2

2

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

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

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

正如 Peeter 在他的回答中所描述的,这允许 Web 应用程序开发人员在用户离线时存储用户输入的数据,然后在他们再次在线时将其与服务器同步。开发者必须手动存储和同步,因为浏览器只提供指示在线状态的事件,但如果浏览器也支持 localStorage,开发者可以将数据存储在那里。

我只能将您指向 Dive into HTML5 的相关章节:http: //diveintohtml5.ep.io/offline.html

于 2011-06-16T12:45:13.650 回答
1

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

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

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

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

于 2011-06-16T12:42:23.523 回答