html5应用缓存(离线存储)

HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问,
这个技术给我们带来的好处真是多多,比如用户可以在离线状态访问到一些内容,在线的情况下已经
缓存过得资源加载的会很快,同时可以减少服务器的压力。。。尤其是在移动开发,比如说一款游戏,缓存对于它来说是
极其重要的。

除了ie以外,所有主流的浏览器都支持应用缓存
说了半天也该上干货了,这个应用缓存到底如何使用呢?

很简单,只要在页面html中增加一个叫manifest的属性,并设置为属性值为一个叫cache.manifest的文件就可以了

<!DOCTYPE HTML>
<html manifest = "cache.manifest">
...
</html>

cache.manifest的文件里这样写

CACHE MANIFEST
#2016-02-21 v1.0.0

CACHE:

js/main.js
css/index.css
images/logo.png

NETWORK:
resourse/logo.png

CALLBACK:
/offline.html

我们来分析一下文件的结构

第一行CACHE MANIFEST是必须要写的

第二行以#开头的是注释 浏览器除了在第一次访问 Web 应用时缓存资源外,只会在 cache manifest 文件本身发生变化(即使是注释变化)时更新缓存。而 cache manifest 中的资源文件发生变化并不会触发更新 所以我们要在注释中写一些时间或版本号供我们更新时参考

CACHE:需要离线存储的资源列表 这里cache.manifest文件本身也会被自动缓存上面写得是指js/main.js css/index.css images/logo.png这三个文件离线就可以加载出来

NETWORK:必须在在线的时候才能访问的资源列表,也就是不会被缓存的资源可以使用星号来指示所有其他其他资源/文件都需要因特网连接

CALLBACK:当访问的页面不存在时使用一个页面去替代它

更新缓存

一旦应用被缓存,它就会保持缓存直到发生下列情况:

用户清空浏览器缓存 manifest 文件被修改 由程序来更新应用缓存

注意事项

  1. 站点离线存储的容量限制是5M 超过这个大小浏览器会报错

  2. 如果manifest文件,或者内部列举的某一个文件不能正常下载,整个更新过程将视为失败,浏览器继续全部使用老的缓存

  3. 引用manifest的html必须与manifest文件同源,在同一个域下
  4. 在manifest中使用的相对路径,相对参照物为manifest文件
  5. CACHE MANIFEST字符串应在第一行,且必不可少
  6. 系统会自动缓存引用清单文件的 HTML 文件
  7. manifest文件中CACHE则与NETWORK,FALLBACK的位置顺序没有关系,如果是隐式声明需要在最前面
  8. FALLBACK中的资源必须和manifest文件同源
  9. 当一个资源被缓存后,该浏览器直接请求这个绝对路径也会访问缓存中的资源。
  10. 站点中的其他页面即使没有设置manifest属性,请求的资源如果在缓存中也从缓存中访问
  11. 当manifest文件发生改变时,资源请求本身也会触发更新
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值