HTML5系列之——applicationCache对象
ApplicationCache主要简单介绍:
applicationCache对象实现HTML5相应WEB离线功能。以下我们来主要解说applicationCache对象的一些主要功能和方法
applicationCache对象记录着本地缓存的各种状态及事件。缓存的状态能够通过window.applicationCache.status获得,其状态
主要包含例如以下6种:
<span style="font-family:Microsoft YaHei;font-size:12px;">interface ApplicationCache:EventTarget{
const unsigned short UNCACHED=0;//未缓存
const unsigned short IDLE=1;//空暇状态
const unsigned short CHECKING=2;//检查中
const unsigned short DOWNLOADING=3;//下载中
const unsigned short UPDATEREADY=4;//更新准备中
const unsigned short OBSOLETE =5;//过期状态
readonly attribute unsigned short status;
}</span>
applicationCache缓存对象的事件例如以下表所看到的:
事件名称 |
说明 |
Checking |
当user agent检查更新时,或者第一次下载manifest清单时,它往往是第一个被触发的事件 |
Noupdate |
当检查到Manifest中清单文件不须要更新时,触发该事件 |
Downloading |
第一次下载或更新manifest清单文件时,触发该事件 |
Progress |
该事件与downloading类似,但downloading事件仅仅触发一次。Progress事件则在清单文件下载过程中周期性触发 |
Cached |
当manifest清单文件完成下载及成功缓存后,触发该事件 |
Upadateready |
此事件的含义表示缓存清单文件已经完成下载,可通过又一次载入页面读取缓存文件或者通过方法swapCache切换到新的缓存文件。经常使用语本地缓存跟新版本号后的提示 |
Obsolete |
增加訪问manifest缓存文件返回HTTP404错误(页面未找到)或者410错误(永久消失)时,触发该事件 |
Error |
若要达到触发该事件,须要满足一下几种情况之中的一个: 1、已经触发obsolete事件 2、manifest文件没有改变,但缓存文件里存在文件下载失败 3、获取manifest资源文件时发生致命错误。 4、当更新本地缓存时,manifest文件再次被更改。 |
在实际的应用中,我们能够通过事件监听,并依据当前applicationCache对象的状态处理相关业务。
例如以下代码所看到的:
<span style="font-family:Microsoft YaHei;">applicationCache.addEventListener('updateready',function(){
//资源文件下载中,能够在此部分添加业务功能
});</span>
接下来值得注意的是,在平时的开发过程中,在使用applicationCache本地缓存的同一时候,往往须要推断当前浏览器的状态(在线或离线)。HTML5正好提供了一个属性,用于推断当前浏览器是否在线,代码例如以下:
windowz.navigator.onLine
假设返回ture,则说明当前浏览器online,返回false则说明当前浏览器offline
HTML5系列之——applicationCache对象的更多相关文章
- HTML5之window.applicationCache对象
不知道离线缓存技术的可以参照上一篇文章: HTML5之appcache语法理解/HTML5应用程序缓存/manifest缓存文件官方用法翻译 参考文章 window.applicationCache ...
- applicationCache对象
applicationCache对象代表了本地缓存,可以在js中进行一些操作.可以用它来通知用户本地缓存中已经被更新,也允许用户手工更新本地缓存.applicationCache.addEventLi ...
- HTML5系列三(多媒体播放、本地存储、本地数据库、离线应用)
各浏览器对编码格式的支持情况 audio和video元素的属性介绍 1.src:媒体数据的URL地址 <video src="pr6.mp4"></video&g ...
- HTML5中的Blob对象的使用
HTML5中的Blob对象和MYSQL中的BLOB类型在概念上是有点区别的.MYSQL中的BLOB类型就只是个二进制数据容器.而HTML5中的Blob对象除了存放二进制数据外还可以设置这个数据的MIN ...
- javascript系列之变量对象
原文:javascript系列之变量对象 引言 一般在编程的时候,我们会定义函数和变量来成功的构造我们的系统.但是解析器该如何找到这些数据(函数,变量)呢?当我们引用需要的对象时,又发生了什么了? 很 ...
- lodash用法系列(2),处理对象
Lodash用来操作对象和集合,比Underscore拥有更多的功能和更好的性能. 官网:https://lodash.com/引用:<script src="//cdnjs.clou ...
- ADO.NET系列之Connection对象
ADO.NET系列之Connection对象 ADO.NET系列之Command对象 ADO.NET系列之DataAdapter对象 ADO.NET系列之事务和调用存储过程 ADO.NET概念 ADO ...
- ADO.NET系列之Command对象
ADO.NET系列之Connection对象 ADO.NET系列之Command对象 ADO.NET系列之DataAdapter对象 ADO.NET系列之事务和调用存储过程 上一篇<ADO.NE ...
- ADO.NET系列之DataAdapter对象
ADO.NET系列之Connection对象 ADO.NET系列之Command对象 ADO.NET系列之DataAdapter对象 ADO.NET系列之事务和调用存储过程 我们前两篇文章介绍了ADO ...
随机推荐
- 基于visual Studio2013解决面试题之0908最大连续数字串
题目
- skip32
在某些应用场景下,需要对数字进行加密,skip32无疑是一种很实用的算法,网上有python的源码(https://bitbucket.org/anuraguniyal/skip32.py/src/4 ...
- Solr4.2迁移到新项目下异常:java.lang.NoSuchMethodError: org.apache.http.conn.scheme.Scheme.<init>
由于业务调整,需要将solr搜索项目集成到另一个项目下成为一个模块,原项目运行异常,但是迁移到新项目后出现异常如下: 原因:引入的httpclient.jar冲突 解决方法:删除冲突的jar
- java绘图板
JAVA绘图板 import java.awt.BasicStroke; import java.awt.BorderLayout; import java.awt.Button; import ja ...
- Linux下SSH Session复制
羡慕Windows下secureCRT的Session Copy功能,一直在寻找Linux下类似的软件,殊不知SSH本身就支持此功能. 特别感谢阿干同学的邮件分享. 详细方法 ? 1 2 3 4 Li ...
- httpClient中的三种超时设置小结
httpClient中的三种超时设置小结 本文章给大家介绍一下关于Java中httpClient中的三种超时设置小结,希望此教程能给各位朋友带来帮助. ConnectTimeoutExceptio ...
- 基于visual Studio2013解决C语言竞赛题之1087数字变换
题目 解决代码及点评 /************************************************************************/ /* ...
- 基于jquery-easyui的仓库管理系统
使用jQuery EasyUI创建的仓库管理系统包括系统管理.数据维护.业务单据管理等,有兴趣可以对其进行修改扩展. 数据库采用MYSQL, 帐号/密码:root/root,演示登录帐号/密码:adm ...
- [每日一题] OCP1z0-047 :2013-08-28 DELETE..........................................................160
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/10475707 正确答案:ACD 根据题库,操作如下: A答案能删除: oe@OCM> ...
- Swift - 创建并设置背景(SpriteKit游戏开发)
1,先把背景图片bg.jpg,bg@2x.jpg直接拖进Images.xcassets中 2,设置如下代码(背景图直接铺满整个屏幕) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...