HTML HTML5 PHP Mysql Linux 缓存技术 工具 资讯 读书 其他

HTML5 应用缓存(Application Cache)


在HTML5中,很容易通过创建缓存清单文件创建离线的网络应用.


什么是应用缓存?

HTML5应用缓存, 意思是指网络应用被缓存后在没有网络连接时可被访问.

应用程序缓存提供的应用有三个优势:

  1. 离线浏览器 - 用户可以在离线的时候使用应用
  2. 速度快 - 加载缓存资源快
  3. 减少服务器负载 - 浏览器仅仅从服务器下载更新的或改变的资源

浏览器支持

Internet Explorer Firefox Opera Google Chrome Safari

IE10, 火狐, 谷歌, 苹果浏览器和欧鹏浏览器都支持应用缓存.


HTML5 缓存清单的例子

下面的例子展示了使用缓存清单的HTML文本(离线浏览器):

例子

<!DOCTYPE HTML>
<html manifest="demo.appcache">

<body>
文档的内容......
</body>

</html>

亲自试一试 »


缓存清单基础知识

启动应用缓存, 在文档的<html>标签中包含manifest属性:

<!DOCTYPE HTML>
<html manifest="demo.appcache">
...
</html>

页面的manifest属性指用户访问它时会缓存.如果没有指定manifest属性没有被指定, 网页不会被缓存(除非页面直接指定manifest文件).

推荐manifest文件使用的扩展是: ".appcache"

Note manifest文件需要服务器指定 correct MIME-type 类型的值为"text/cache-manifest". 必须配置网络服务器.


清单(manifest)文件

manifest文件是简单的文本文件, 告诉浏览器加载缓存什么内容 (和不缓存什么内容).

manifest文件包括三个部分:

  • 缓存清单 - 文件清单会在第一次使用后会被下载缓存
  • 网络 - 文件清单中指定不会被缓存,需要连接到服务器
  • 后退 - 文件清单指定页面无法访问时的后退页面

缓存清单

第一行, 必须添加缓存清单:

CACHE MANIFEST
/theme.css
/logo.gif
/main.js

上面的清单文件包括3个资源: 一个CSS文件, 一个GIF图片,和一个JavaScript文件.当清单文件被加载后,浏览器会从网站根目录下载这三个文件. 然后,当用户没有连接网络的时候,资源仍会有效.

网络

下面的网络部分指定"login.php"不会被缓存,在离线的时候页面无效:

NETWORK:
login.php

可以使用星号表明所有其他资源/文件需要互联网连接:

NETWORK:
*

后退

下面的FALLBACK部分是指万一网络无法连接时,"offline.html"文件替换所有/html/目录中的所有文件:

FALLBACK:
/html/ /offline.html

注意: 第一个URI是指源, 第二个是指后退文件.


更新缓存

一旦使用了缓存, 在发生如下情况后缓存会被更新:

  • 用户清除浏览器缓存
  • 清单文件被修改(查看下面提示)
  • 通过程序更新应用缓存

例子 - 完整的缓存清单文件

CACHE MANIFEST
# 2012-02-21 v1.0.0
/theme.css
/logo.gif
/main.js

NETWORK:
login.asp

FALLBACK:
/html/ /offline.html

Note 提示: 行的起始部分使用"#" 代表注释. 当清单文件改变时应用的缓存会被更新. 如果你编辑了图片或改变了JavaScript函数, 这些改变不会被重新缓存. 修改注释行中的日期和版本是让你的浏览器更新缓存的一种方式.


注意应用缓存

小心使用缓存

一旦文件进行了缓存, 浏览器会显示缓存版本,甚至你在服务器端改了文件。为了确保浏览器更新缓存,您需要更改manifest文件.

注意: 不同浏览器缓存的数据可能有不同的大小限制 (一些浏览器的限制是5MB).


To Top