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 ...
随机推荐
- 超详细SDK Hello World
Windows应用程序的基本运行机制与HelloWin程序详细解 总的来说最基本的Windows应用程序的运行执行顺序总是以如下的基本顺序执行的. 顺序结构: 调用WinMain函数开始执行--à定义 ...
- dos2unix与unix2dos之学习记录
1. unix2dos与dos2unix这两个tool是用来干什么的? 这首先应该要说明一下背景知识: unix类操作系统下,换行字符是\n: 而早期的dos操作系统,其换行字符是由\r\n组成. 所 ...
- anglehack参赛总结
自已不足的方面: 自已和伙伴是带着idea去的,但是没有带有很大的热情激励和吸引在场的hacker加入团队,一定要找最优秀的人加入团队,事实上我是有这方面识人认人的能力的,24h,5-6个人的优秀团队 ...
- AngularJS_百度百科
AngularJS_百度百科 AngularJS 编辑 AngularJS是为克服HTML在构建应用上的不足而设计的. 目录 1简介引引 端对 ...
- jquery子元素过滤选择器
:nth-child('索引值')//获取指定元素下的某个子元素的位置,索引从1开始: //偶数行 //$('li:nth-child(even)').addClass ...
- Google 开源项目风格指南阅读笔记(C++版)
虽说是编程风格指南,可是干货也不少,非常多C++的有用技术在里面. 头文件 通常每一个.cpp文件都相应一个.h文件:#define保护全部头文件都应该使用#define防止头文件被多重包括,为保证唯 ...
- js操作styleSheets
document.styleSheets这个接口可以获取网页上引入的link样式表和style样式表.比如 最后的输出结果如下. 换下代码看看我们具体的styleSheets具体输出什么 这些都是次要 ...
- 【ASP.NET Web API教程】1 ASP.NET Web API入门
原文 [ASP.NET Web API教程]1 ASP.NET Web API入门 Getting Started with ASP.NET Web API第1章 ASP.NET Web API入门 ...
- 在springmvc中配置jedis(转)
主要学习https://github.com/thinkgem/jeesite.一下代码均参考于此并稍作修改. 1.jedis 首先,需要添加jedis: <!--jedis--> < ...
- boost::asio网络传输错误码的一些实验结果(recv error_code)
错误码很重要,可以由此判断网络连接到底发生了神马事情,从而驱动高层逻辑的行为.只有笼统的错误码判断的网络层是不够规范的,鄙人觉得有些错误码还是需要在网络层就区分开的,特此记录一些当前实验的错误码以及发 ...