什么是离线缓存

离线缓存,就是将指定的网页文件(例如css、js)保存到本地,当用户没有网络时,依旧可以通过浏览器使用这些文件。

为何要用离线缓存

从网站所有者的角度来说,增加离线缓存功能,能够让用户更好的使用网站。

离线缓存的设置步骤

1 配置manifest文件

2 通过JS进行缓存的控制

manifest文件的配置

1. 添加manifest属性

将需要离线缓存的文件罗列下来,存储于后缀名为manifest的文件当中。 在HTML文件中引入manifest文件

2. manifest文件的基本组成

基本语法:

CACHE MANIFEST

# 该符号后面的内容为注释信息,第一行的CACHE MANIFEST不能少

CACHE:

# 需要缓存的文件

NETWORK:

# 不需要缓存的文件

FALLBACK:

# 当页面无法访问时的回退页面/重定向

代码实例:

CACHE MANIFEST

CACHE:

../test.html

../css/reset.css

../css/test.css

# 需要注意的是:manifest文件中书写的路径,是以该文件的路径为基础,而非以html所在文件夹为基础

NETWORK:

../images/logo.jpg

FALLBACK

离线缓存的工作流程图:

使用JavaScript控制缓存

缓存的各类属性和事件,均绑定在“applicationCache”上。

1. 涉及缓存的属性:

applicationCache.status

用于表示当前的缓存状态,取值范围为0~5。

0代表未缓存,通常是这些页面没有运用离线缓存技术,就是这个状态。

1代表空闲,当缓存是最新的时候为1,不需要做什么操作。

2代表检查中,即浏览器在检查manifest文件是否为最新。

3代表下载中,当前有更新,并且正在下载。

4代表更新就绪,代表当前有更新,并且已经下载完毕。等待下次载入页面的时候,进行更新。

5代表缓存过期。即找不到正确的缓存文件时候,会变成5。

2. 涉及缓存的事件:

update 用于主动更新缓存

updateready 当有新的缓存,并更新完毕之后,会触发此事件

progress 进度事件,当进行缓存的下载时,会不断的触发该事件

progress中的event对象包含:loaded和total。loaded代表当前已经

加载完成的文件,total为总共需要更新的文件数。

checking 正在检查

downloading 正在下载

obsolete 缓存过期

cached 空闲,缓存为最新状态

error 报错

noupdate 检查更新结束,不需要更新

部分事件使用案例代码:

// update事件使用案例

applicationCache.update();

// updateready事件使用案例

application.addEventListener('updateready', function(){

console.log('已完成缓存的更新');

}, false);

// progress事件使用案例

application.addEventListener('progress', function(){

console.log(applicationCache.status);

}, false);

HTML5学堂微信~欢迎扫码关注

离线缓存html5,HTML5新技术 离线缓存相关推荐

  1. HTML5 API详解(11):Cache 应用程序缓存,这下离线也可以玩了

    Web缓存是指一个Web资源(如html页面,图片,js,数据等)存在于Web服务器和客户端(浏览器)之间的副本.缓存会根据进来的请求保存输出内容的副本:当下一个请求来到的时候,如果是相同的URL,缓 ...

  2. 通过应用程序缓存实现HTML5的离线浏览

    对Web开发者和设计者来说,离线浏览已经越来越重要了.能让用户离线浏览一直是站点设计的目标,但却很难实现.当我们进入到HTML5的时代,这种情形却发生了改变.你可以利用应用程序缓存(Applicati ...

  3. Android webView 缓存 Cache + HTML5离线功能 解决

    WebView中存在着两种缓存:网页数据缓存(存储打开过的页面及资源).H5缓存(即appcache). 一.网页缓存 1.缓存构成 /data/data/package_name/cache/ /d ...

  4. HTML5时代的Web缓存机制

    HTML5 之离线应用Manifest 我们知道,使用传统的技术,就算是对站点的资源都实施了比较好的缓存策略,但是在断网的情况下,是无法访问的,因为入口的HTML页面我们一般运维的考虑,不会对其进行缓 ...

  5. .net html5页面缓存,详解HTML5中的manifest缓存使用

    起源html5之前的网页,都是无连接,必须联网才能访问,这其实也是web的特色,这其实对于PC是时代问题并不大,但到了移动互联网时代,设备终端位置不再固定,依赖无线信号,网络的可靠性变得降低,比如坐在 ...

  6. [html] HTML5的文件离线储存怎么使用,工作原理是什么?

    [html] HTML5的文件离线储存怎么使用,工作原理是什么? localstorge 利用浏览器的本地存储可以缓存信息 ,在创建数据的时候引入创建好的数据 cookie 好像也可以 个人简介 我是 ...

  7. html5离线储存不足,html5的离线存储问题

    HTML5的一个重要特性就是离线存储,所谓的离线存储就是将一些资源文件保存在本地,这样后续的页面重新加载将使用本地资源文件,在离线情况下可以继续访问web应用,同时通过一定的手法(更新相关文件或者使用 ...

  8. 使用HTML5开发手机离线应用

    本来这篇文章想叫<挺起你的HTML5>或者<让HTML5飞>或者神马其他的,但是为了更好的体现主题,我就用这个直白点的题目吧  ~ 随 着各种智能手机(iPhone.Andro ...

  9. html5离线存储图片,HTML5教程 离线存储技术详解

    本篇教程探讨了HTML5教程 离线存储技术详解,希望阅读本篇文章以后大家有所收获,帮助大家HTML5+CSS3从入门到精通 . < 随着Web App的发展,越来越多的移动端App使用HTML5 ...

最新文章

  1. java代码完全手写模仿qq登录界面
  2. PHP最简单写文件记日志当前时间
  3. mysql基于传统的log_file及log_pos主从复制
  4. Nutch中MapReduce的分析[zz]
  5. php 删除mysql 返回_php 返回mysql字符编码与删除字符编码
  6. 范醒哲:5G时代是时候全面解决TCP的效率问题了
  7. 可为空的对象必须具有一个值_前端:这里有8个常见的JavaScript经典问题,总有一个你不会的...
  8. Panoptic FPN-Panoptic Feature Pyramid Networks用于全景分割的特征金字塔网络
  9. unity简单的粒子特效的制作
  10. 水晶报表繁体转简体心得:之一 RPT文件篇
  11. 贝塞尔曲线(Bezier Curve)
  12. WebSphere安装配置文档
  13. MFSPV: A Multi-Factor Secured and Lightweight Privacy-Preserving Authentication Schem
  14. 让老公“寒心”的对话 (转)
  15. 201819101025王涵月
  16. 最快速的文件传输软件,解析镭速文件传输软件
  17. 转载 sap FI-CO总账科目简析
  18. 警惕“黑洞效应”?汽车芯片的“扩张”和主机厂的“枷锁”
  19. 安装验证jmeter是否成功
  20. LDA与QDA分类数据的简单应用(python)

热门文章

  1. 一窥社交媒体中的档案学
  2. LRESULT与wParam和lParam的问题
  3. 一灯大师之点亮OK6410开发板上4个LED裸机程序---嵌入式回归第十篇
  4. c语言程序运行环境实验报告,程序的运行环境实验报告.doc
  5. 开放源码是开源软件吗?
  6. SUMO学习(1)关于osm地图无法转换xml
  7. 2022年湖北省新一代人工智能科技项目揭榜挂帅需求及限制条件
  8. 死磕算法第三弹——排序算法(2)
  9. jQuery实现移动端手机选择日期日历插件
  10. ctfshow-新手杯-crypto4新手村难度-wp