发表于: 2017-05-16 20:13:01
1 960
【css-15】HTML5的离线储存怎么使用?
小课堂【武汉第171期】
分享人:肖浩宇
1.背景介绍
什么是应用程序缓存(Application Cache)?
网页必须在有网时才能使用,HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问。
2.知识剖析
a.使用方法:
在html标签中引入manifest文件:
<html manifest="test.appcache">
这个文件中存储了服务器希望缓存的文件列表:
CACHE MANIFEST
#上面一句必须
#v1.0.1
#需要缓存的文件
CACHE:
test.html
test.js
doraemon.jpg
#不需要缓存的文件
NETWORK:
test.css
#无法访问页面
FALLBACK:
404.html
b.更新缓存:
在有网时,以下条件触发缓存的更新
1.用户清空浏览器缓存
2.manifest 文件被修改
3.由程序来更新应用缓存
c.缓存流程:
利用一个manifest清单文件告知服务器需要离线的网页文件。
在第一次访问网站时服务器响应manifest文件进行缓存。
在第二次访问该网址时,检测是否达到更新缓存的条件,否则直接使用缓存文件(即使你修改了服务器上的文件)。
d.注意
HTML5应用缓存特性已经从 Web 标准中删除,虽然一些浏览器目前仍然支持它,但也许会在未来的某个时间停止支持,请尽量不要使用该特性。
点击查看详情
https://developer.mozilla.org/zh-CN/docs/Web/HTML/Using_the_application_cache
3.常见问题
离线存储有什么优缺点?
优点
1.离线浏览 - 用户可在应用离线时使用它们
2.速度 - 已缓存资源加载得更快
3.减少服务器负载 - 浏览器将只从服务器下载更新过或更改过的资源。
缺点
1.更新的资源,需要二次刷新才会被页面采用
2.不支持增量更新,只有manifest发生变化,所有资源全部重新下载一次
3.缺乏足够容错机制,当清单中任意资源文件出现加载异常,都会导致整个manifest策略运行异常
4.编码实战
这里是一个离线存储的demo
<a href="http://59.110.174.154/task/manifest/test.html">demo</a>
5.扩展思考
存储网页数据的方式?
1.localStorage - 没有时间限制的数据存储(永久),对于同一个浏览,当用户关闭浏览器窗口后,数据不会被删除。
2.sessionStorage - 针对一个 session 的数据存储(sesion/),当用户关闭浏览器窗口后,数据会被删除。
3.cookie:不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不高。
6.参考文献
1.参考一:慕课网-manifest
http://www.w3school.com.cn/html5/html_5_app_cache.asp
2.参考二:MDN-manifest
https://developer.mozilla.org/zh-CN/docs/Web/HTML/Using_the_application_cache
3.参考三:知乎-关于前端缓存优化,为什么没人用manifest?
https://www.zhihu.com/question/35130316
7.更多讨论
浏览器对离线存储的大小有限制吗?
浏览器对缓存数据的容量限制可能不太一样(某些浏览器设置的限制是每个站点 5MB)。
鸣谢
感谢大家观看
BY
武汉-肖浩宇
评论