文件缓存

要实现文件缓存在客户端,可以使用根节点html元素的manifest属性,引用一个清单文件,使用UTF-8编码,列出了离线访问应用时需要缓存的文件清单。

manifest属性定义的值是一个文件路径,所对应的MIME类型应该为text/cache-manifest

Eg

html文件(test.html):

<htmlmanifest=”test.manifest”>

<head>

<scriptsrc=”test.js”></script>

<linkrel=”stylesheet” href=”test.css”>

</head>

<body>

<imgsrc=”images/icon_1.png”>

<imgsrc=”images/icon_2.png”>

<imgsrc=”images/icon_3.png”>

</body>

manifest文件:

CACHE MANIFEST

#缓存清单文件

CACHE:

test.html

test.js

test.css

images/icon_1.png

images/icon_2.png

images/icon_2.png

第一次请求网页后会缓存到本地浏览器,即使断网也可以访问网页,并且执行其中的业务逻辑;

要更新离线存储文件,必须更新manifest文件;否则,即使存储文件发生改变,也没有作用,例如CSS文件改变内容样式,如果不改变manifest文件,不断刷新,网页也不会发生改变;

可以清楚浏览器manifest文件导致重新下载或者使用window.applicationCache对象控制更新。


缓存清单文件格式:

CACHEMANIFEST

#version1.0

#CACHEMANIFEST下必须空一行或者填充注释


#缓存的文件列表

CACHE:


#必须在线访问

NETWORK:

test.jsp

#重定向

FALLBACK:

/test.jsp /404.html #请求test.jsp出错转向404.html页面


DOM方法处理离线应用:

HTML5定义了ApplicationCache接口规范离线缓存的控制。

获取缓存:varcache = window.applicationCahce ; //cache当前文档的ApplicationCache对象

检查状态:varstatus = cache.status; //具有5种状态:UNCACHED缓存宿主与应用宿主无关联、IDLE应用缓存为最新、CHECKING有关联,更新状态为checkingDOWNLOADING有关连,更新状态为downloadingUPDATEREADY更新状态为idle,但缓存不是最新、OBSOLETE有关联,更新状态obsolete

更新缓存:

1cache.update() //浏览器更新,前提是manifest更新过,

2cache.swapCache() //状态为UOPDATEREADY时将旧缓存更新为新的,不会加载新资源,会更新manifest文件,在下次加载时更新资源。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值