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对象的更多相关文章

  1. HTML5之window.applicationCache对象

    不知道离线缓存技术的可以参照上一篇文章: HTML5之appcache语法理解/HTML5应用程序缓存/manifest缓存文件官方用法翻译 参考文章 window.applicationCache  ...

  2. applicationCache对象

    applicationCache对象代表了本地缓存,可以在js中进行一些操作.可以用它来通知用户本地缓存中已经被更新,也允许用户手工更新本地缓存.applicationCache.addEventLi ...

  3. HTML5系列三(多媒体播放、本地存储、本地数据库、离线应用)

    各浏览器对编码格式的支持情况 audio和video元素的属性介绍 1.src:媒体数据的URL地址 <video src="pr6.mp4"></video&g ...

  4. HTML5中的Blob对象的使用

    HTML5中的Blob对象和MYSQL中的BLOB类型在概念上是有点区别的.MYSQL中的BLOB类型就只是个二进制数据容器.而HTML5中的Blob对象除了存放二进制数据外还可以设置这个数据的MIN ...

  5. javascript系列之变量对象

    原文:javascript系列之变量对象 引言 一般在编程的时候,我们会定义函数和变量来成功的构造我们的系统.但是解析器该如何找到这些数据(函数,变量)呢?当我们引用需要的对象时,又发生了什么了? 很 ...

  6. lodash用法系列(2),处理对象

    Lodash用来操作对象和集合,比Underscore拥有更多的功能和更好的性能. 官网:https://lodash.com/引用:<script src="//cdnjs.clou ...

  7. ADO.NET系列之Connection对象

    ADO.NET系列之Connection对象 ADO.NET系列之Command对象 ADO.NET系列之DataAdapter对象 ADO.NET系列之事务和调用存储过程 ADO.NET概念 ADO ...

  8. ADO.NET系列之Command对象

    ADO.NET系列之Connection对象 ADO.NET系列之Command对象 ADO.NET系列之DataAdapter对象 ADO.NET系列之事务和调用存储过程 上一篇<ADO.NE ...

  9. ADO.NET系列之DataAdapter对象

    ADO.NET系列之Connection对象 ADO.NET系列之Command对象 ADO.NET系列之DataAdapter对象 ADO.NET系列之事务和调用存储过程 我们前两篇文章介绍了ADO ...

随机推荐

  1. SqlParameter参数化查询

    上篇博客写了关于重构代码用到的SQLHelper类,这个类包括四种函数,根据是否含参和是否有返回值各分两种.在这里写写传参过程用到的SqlParameter. 如果我们使用如下拼接sql字符串的方式进 ...

  2. 微信5.0 Android版飞机大战破解无敌模式手记

    微信5.0 Android版飞机大战破解无敌模式手记 转载: http://www.blogjava.net/zh-weir/archive/2013/08/14/402821.html 微信5.0 ...

  3. 1.1.2-学习Opencv与MFC混合编程之---画图工具 画直线 画圆 画矩形

    源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961685 画图工具 1.     画直线 Ø  增加‘直线’菜单项,建立类向导: Ø  对CXX ...

  4. hdu 4803 贪心/思维题

    http://acm.hdu.edu.cn/showproblem.php?pid=4803 话说C++还卡精度么?  G++  AC  C++ WA 我自己的贪心策略错了 -- 就是尽量下键,然后上 ...

  5. Hbase初体验

    搭建local模式搭建, 官网:http://hbase.apache.org API:http://hbase.apache.org/apidocs/index.html download:http ...

  6. Eclipse无提示的解决办法 和 内容辅助技巧

    Eclipse无提示的解决办法 和 内容辅助技巧 一.若发现内容辅助失效没有提示 下面是解决办法,现贴出来与大家共享:       1.菜单window->Preferences->Jav ...

  7. 不使用webview,用手机浏览器的android app

    需求:wap站在手机上以App的形式打开,但不要嵌套WebView,只能以浏览器打开 package com.gzz.whyinzi; import android.net.Uri; import a ...

  8. VC添加背景图片 的一种方法

    .如果程序是新建的对话框,要给其添加背景图片的步骤: 1)加入消息函数:afx_msg void OnPaint(); 2)BEGIN_MESSAGE_MAP(QueryDlg, CDialog) O ...

  9. 【Demo 0016】SQLite 数据库

    本章学习要点:       1.  熟悉SQL语句:       2.  掌握SQLit库的基本用法;        3.  掌握SQLite封装:

  10. html ui设计案例

    1.jquery特效:http://www.5icool.org 2. http://www.open-lib.com/Lib/1992.jsp