1.背景介绍
什么是应用程序缓存(Application Cache)?
网页必须在有网时才能使用,HTML5引入了应用程序缓存,这意味着web应用可进行缓存,并可在没有因特网连接时进行访问。
2.知识剖析
a.使用方法:
在html标签中引入manifest文件:
这个文件中存储了服务器希望缓存的文件列表:
b.更新缓存:
在有网时,以下条件触发缓存的更新
1.用户清空浏览器缓存
2.manifest文件被修改
3.由程序来更新应用缓存
c.缓存流程:
利用一个manifest清单文件告知服务器需要离线的网页文件。
在第一次访问网站时服务器响应manifest文件进行缓存。
在第二次访问该网址时,检测是否达到更新缓存的条件,否则直接使用缓存文件(即使你修改了服务器上的文件)。
d.注意
HTML5应用缓存特性已经从Web标准中删除,虽然一些浏览器目前仍然支持它,但也许会在未来的某个时间停止支持,请尽量不要使用该特性。
3.常见问题
离线存储有什么优缺点?
优点
1.离线浏览-用户可在应用离线时使用它们
2.速度-已缓存资源加载得更快
3.减少服务器负载-浏览器将只从服务器下载更新过或更改过的资源。
缺点
1.更新的资源,需要二次刷新才会被页面采用
2.不支持增量更新,只有manifest发生变化,所有资源全部重新下载一次
3.缺乏足够容错机制,当清单中任意资源文件出现加载异常,都会导致整个manifest策略运行异常
4.编码实战
这里是一个离线存储的demo
5.扩展思考
存储网页数据的方式?
1.localStorage-没有时间限制的数据存储(永久),对于同一个浏览,当用户关闭浏览器窗口后,数据不会被删除。
2.sessionStorage -针对一个session的数据存储(sesion/),当用户关闭浏览器窗口后,数据会被删除。
3.cookie:不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得cookie速度很慢而且效率也不高。
6.参考文献
1.参考一:慕课网-manifest
2.参考二:MDN-manifest