HTML5的离线储存怎么使用?

1.背景介绍

什么是应用程序缓存(Application Cache)?

网页必须在有网时才能使用,HTML5引入了应用程序缓存,这意味着web应用可进行缓存,并可在没有因特网连接时进行访问。


2.知识剖析

a.使用方法:

在html标签中引入manifest文件:

这个文件中存储了服务器希望缓存的文件列表:


manifest文件结构

b.更新缓存:

在有网时,以下条件触发缓存的更新

1.用户清空浏览器缓存

2.manifest文件被修改

3.由程序来更新应用缓存

c.缓存流程:

利用一个manifest清单文件告知服务器需要离线的网页文件。

在第一次访问网站时服务器响应manifest文件进行缓存。

在第二次访问该网址时,检测是否达到更新缓存的条件,否则直接使用缓存文件(即使你修改了服务器上的文件)。

d.注意

HTML5应用缓存特性已经从Web标准中删除,虽然一些浏览器目前仍然支持它,但也许会在未来的某个时间停止支持,请尽量不要使用该特性。

点击查看详情


3.常见问题

离线存储有什么优缺点?

优点

1.离线浏览-用户可在应用离线时使用它们

2.速度-已缓存资源加载得更快

3.减少服务器负载-浏览器将只从服务器下载更新过或更改过的资源。

缺点

1.更新的资源,需要二次刷新才会被页面采用

2.不支持增量更新,只有manifest发生变化,所有资源全部重新下载一次

3.缺乏足够容错机制,当清单中任意资源文件出现加载异常,都会导致整个manifest策略运行异常


4.编码实战

这里是一个离线存储的demo

demo


5.扩展思考

存储网页数据的方式?

1.localStorage-没有时间限制的数据存储(永久),对于同一个浏览,当用户关闭浏览器窗口后,数据不会被删除。

2.sessionStorage -针对一个session的数据存储(sesion/),当用户关闭浏览器窗口后,数据会被删除。

3.cookie:不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得cookie速度很慢而且效率也不高。

6.参考文献

1.参考一:慕课网-manifest

2.参考二:MDN-manifest

3.参考三:知乎-关于前端缓存优化,为什么没人用manifest?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容