applicationCachecss
第一次加载后将数据缓存,若是没有清除缓存,下一次没有网络也能加载。
1. 使用 manifest
属性,引入 .appcache
文件html
.appcache
<!DOCTYPE html> <html lang="en" manifest="demo.appcache"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> </body> </html>
2. 编写 demo.appcache
文件html5
NETWORK: 下面的文件永远不会被缓存,且离线时是不可用的
可使用星号来指示全部其余资源/文件都须要因特网链接浏览器
NETWORK: *
CACHE MANIFEST logo.png main.js NETWORK: index.css FALLBACK: # 访问失败后 重定向 /html5/ /404.html
目前为止就实现了离线缓存缓存
window.applicationCache.status
查看缓存的当前状态网络
1. applicationCache.update()
主动更新缓存app
//利用定时器隔必定时间自动更新一下缓存 setInterval(function(){ applicationCache.update(); },10000);
2. swapCache()
全部的请求都重新缓存中获取
注意:这并不会从新载入应用程序:全部已经载入的html文件、图片、脚本等资源都不会改变。可是,以后的请求将从最新的缓存中获取。这会致使“版本错乱”的问题,所以通常不推荐使用,除非应用程序设计得很好,确保这样的方式没有问题。url
1. updateready 当有新的缓存,并更新完之后,触发此事件设计
window.applicationCache.onupdateready = function(){ alert("缓存更新完成"); },false);
2. progress 有新的缓存,在下载过程当中,会间断性触发code
event包含:loaded和total。loaded表明当前已经加载完成的文件,total为总共须要更新的文件数
applicationCache.onprogress = function(e){ alert(applicationCache.status); //3... 3表示正在下载 },false);
3. cached 下载完成而且首次将应用程序下载到缓存中时触发
4. updaterady 更新完成,下载完成并将缓存中的应用程序更新后触发
触发此事件的时候,用户任然能够看到老版本的应用程序
5. error 浏览器处于离线状态,检查清单列表失败
当一个未缓存的应用程序引用一个不存在的清单文件,也会触发此事件
6. obsolete 若是一个缓存的应用程序引用一个不存在的清单文件会触发
7. checking 正在检查,每次载入一个设置了manifest属性的html文件,浏览器都会触发
8. downloading 正在下载
9. noupdate 检查更新结束,没有须要更新