1.起源:
H5之前,所有网页都必须联网才能访问
PC端没问题,在移动端网络的可靠性变低。(过山洞、走地下通道、去郊区、连不上网,什么都干不了)
2.manifest是什么?
manifest是一个同名后缀为manifest的文件,在文件中定义那些需要缓存的文件,支持manifest的浏览器,将会按照manifest文件的规则进行保存数据,从而在没有网络的情况下,也可以访问
当第一次正确配置app cache后,再次访问该应用时,浏览器器会首先检查manifest是否有变动,如果有变动,则把相应的变化更更新下来,同时改变浏览器器的app cache,如果没有变动,就会直接把app cache的资源返回
3.特点:
离线浏览 —— 用户可以在离线状态浏览⽹网站旧数据
更快的速度 —— 因为数据存储在本地,所以速度会更快
减轻服务器的负载 —— 浏览器只会下载在服务器上发生改变的资源
4.兼容情况:
所有主流浏览器都支持离线缓存,除了了个性的IE
5.使用
a.在html标签中增加一个manifest属性,用来指定当前页面的manifest文件
b.创建一个和html同名的manifest文件,然后给index.html文件添加属性 <html manifest="index.manifest">
c.html文件设置完成,后面去操作manifest文件
6.manifest文件的编写
7.如何更新缓存
a.更新manifest文件
给manifest添加或删除文件,都可以更新缓存
如果我们更改了了js,而没有新增或删除,
前面例子中的版本号,可以很好的用来更新manifest文件
b.通过javascript操作
HTML5中引入JS操作离线缓存的方法
window.applicationCache.update();
浏览器已放弃支持该方法
c.清除浏览器缓存
如果用户清除了浏览器缓存,会重新下载文件
8.使用注意事项
(1)浏览器对缓存数据的容量量限制可能不太一样,某些浏览器限制是每个站点5MB
(2)如果manifest文件,或者内部列列举的某一个文件不能正常下载,
整个更更新过程将失败,继续使用老的缓存
(3)引用manifest的html必须与manifest文件同源,在同一个域下
(4)FALLBACK中的资源必须和manifest文件同源
(5)当一个资源被缓存后,该浏览器直接请求整个绝对路径也会访问缓存中的资源
(6)站点的其它页面即时没有manifest属性,请求的资源如果在缓存中也从缓存中访问
(7)当manifest文件发生改变的时,资源请求本身也会触发更更新