HTML5提供了一系列的特性来支持离线应用:
完整介绍
https://developer.mozilla.org/zh-CN/docs/Web/HTML/Using_the_application_cache
需要缓存的资源都放在Manifest文件中,
CACHE MANIFEST
# 以上折行必需要写
CACHE:
# 这部分写需要缓存的资源文件列表
# 可以是相对路径也可以是绝对路径
index.html
index.css
images/logo.png
js/main.js
http://img.baidu.com/js/tangram-base-1.5.2.1.js
NETWORK:
# 可选
# 这一部分是要绕过缓存直接读取的文件
login.php
FALLBACK:
# 可选
# 这部分写当访问缓存失败后,备用访问的资源
# 每行两个文件,第一个是访问源,第二个是替换文件*.html /offline.html
你需要这样使用一个缓存清单文件
<html manifest="demo.cache">
...
</html>
使用了应用缓存机制以后加载文档的顺序是这样的:
更新后是所有资源全部重新下载, 在下载的过程中, 任意一个资源下载出错, 所有已下载的资源都被清空
因此, 如果你更新了文件后, 访问页面发现还是上次的资源, 因为浏览器是先读取已经缓存的资源之后再去检查更新的, 只有再一次去访问页面才是读取新资源
如果当前缓存的清单副本是最新的,浏览器将向 applicationCache 对象发送一个 noupdate 事件,到此,更新过程结束。注意,如果你在服务器修改了任何缓存资源,同时也应该修改清单文件,这样浏览器才能知道它需要重新获取资源。
Chrome调试的时候不要勾选 Disable Cache 否则永远都无法触发noupdate事件了
所有资源都获取成功,触发cached 事件。
在下载资源文件的过程中, 还会触发一个checking, 检测资源文件有没有更新