使用html5 通过创建cache manifest文件,可以轻松地创建web应用的离线版本。

html5引入了应用程序缓存,这意味着web应用可进行缓存,并可在没有因特网连接时进行访问。

应用程序缓存为应用带来三个优势:

1,离线缓存-用户可在应用离线时使用它们。

2,速度-已缓存资源加载得更快

3,减少服务器负载 浏览器将只从服务器下载更新过或更改过的资源。

HTML5 Cache Manifest实例

下面的例子展示了带有cache manifest的html文档(供离线浏览):

<!DOCTYPE HTML>
<html manifest="demo.appcache"> <body> </body> </html>

Cache Manifest基础

如需启用应用程序缓存,请在文档的html标签中包含manifest属性:

每个指定了manifest的页面在用户对其访问时都会被缓存。如果未指定manifest属性,则页面不会被缓存(除非在manifest文件中直接指定了该页面)

Tmanifest文件的建议的文件扩展名是:".appcache".

请注意:manifest文件需要配置正确的MIME-type,即"text/cache-manifest".必须在web服务器上进行配置。

Manifest文件

manifest文件是简单的文本文件,它告知浏览器被缓存的内容(以及不被缓存的内容)。

manifest文件可分为三个部分:

CACHE MANIFEST 在此标题下列出的文件将在首次下载后进行缓存

NETWORK 在此标题下列出的文件需要与服务器连接,且不会被缓存

FALLBACK,在此标题下列出的文件规定当页面无法访问回退页面

CACHE MANIFEST

第一行,CACHE MANIFEST是必需的:

CACHE MANIFEST

/theme.css

/logo.gif

/jquery.js

上面的manifest文件列出了三个资源:一个css文件,一个gif图像,以及一个js文件,当manifest文件加载后,浏览器会从网站的根目录下下载这三个文件。然后,无论用户何时与因特网断开连接,这些资源依然是可用的。

NETWORD

下面的NETWORD小节规定文件"login.php"永远不会被缓存,且离线时是不可用的:

FALLBACK

下面的FALLBACK小节规定如果无法建立因特网连接,则用"offline.html",替代/html5/目录中所有的文件:

FALLBACK:
/html/ /offline.html 注意: 第一个 URI 是资源,第二个是替补。

更新缓存

一旦应用被缓存,它就会保持缓存直到发生下列情况:

用户清空浏览器缓存

manifest文件被修改(参阅下面的提示)

由程序来更新应用缓存

关于应用程序缓存的说明

请留心缓存的内容

一旦文件被缓存,则浏览器会继续展示已缓存的版本,即使您修改了服务器上的文件。为了确保浏览器更新缓存,您需要更新manifest文件。

注意:浏览器对缓存数据的容量限制可能不太一样(某些浏览器设置的限制是每个闪站点5MB)

HTML5 学习笔记 应用程序缓存的更多相关文章

  1. HTML5学习(九)----应用程序缓存

    参考教程:http://www.w3school.com.cn/html5/html_5_app_cache.asp 使用 HTML5,通过创建 cache manifest 文件,可以轻松地创建 w ...

  2. html5学习笔记一

    HTML5学习笔记 <video>标记:定义视频,Ogg.MPEG4.WebM三种格式 <video src=”movie.ogg”  controls=”controls”> ...

  3. HTML5学习总结-08 应用缓存(Application Cache)

    一 应用缓存(Application Cache) 1 应用缓存 HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问. 应用程序缓存为应用带来三个优势: ...

  4. HTML 5 学习之应用程序缓存

    什么是应用程序缓存(Application Cache)? HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问. 应用程序缓存为应用带来三个优势: 离线浏 ...

  5. html5学习笔记3——高级特性

    一:Web存储 数据以 键/值 对存在, web网页的数据只允许该网页访问使用. web存储有两种: localStorage - 没有时间限制的数据存储,存于浏览器缓存 sessionStorage ...

  6. mybatis学习笔记(14)-查询缓存之中的一个级缓存

    mybatis学习笔记(14)-查询缓存之中的一个级缓存 标签: mybatis mybatis学习笔记14-查询缓存之中的一个级缓存 查询缓存 一级缓存 一级缓存工作原理 一级缓存測试 一级缓存应用 ...

  7. Html5学习笔记1 元素 标签 属性

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. SpringBoot学习笔记:Redis缓存

    SpringBoot学习笔记:Redis缓存 关于Redis Redis是一个使用ANSI C语言编写的免费开源.支持网络.可基于内存亦可以持久化的日志型.键值数据库.其支持多种存储类型,包括Stri ...

  9. HTML5学习笔记之表格标签

    HTML5学习笔记之表格标签 其他HTML5相关文章 HTML5学习笔记之HTML5基本介绍 HTML5学习笔记之基础标签 HTML5学习笔记之表格标签 HTML5学习笔记之表单标签 HTML5学习笔 ...

随机推荐

  1. Python中进程无法结束的处理办法

    1.方法一    http://hi.baidu.com/javalang/item/72fabf2359a30b464799625e 也就是说当线程使用start方法运行起来后,只有当run方法运行 ...

  2. mssql Row_Number() 分页 DISTINCT 问题

    转载原文地址http://www.cnblogs.com/pumaboyd/archive/2008/04/20/1162376.html 这周碰到了很多奇怪的问题,有些是莫名的低级错误,有些这是一直 ...

  3. TEA加密算法java版

    这个算法简单,而且效率高,每次可以操作8个字节的数据,加密解密的KEY为16字节,即包含4个int数据的int型数组,加密轮数应为8的倍数,一般比较常用的轮数为64,32,16,推荐用64轮. 源代码 ...

  4. 在WPF中实现玻璃模糊效果

    在WPF中实现玻璃模糊效果还是比较简单的,主要方式如下: 添加一个Rectangle或其它控件作为玻璃放到顶部图层 将底部图像作为Brush(大多数的时候用VisualBrush)填充到Rectang ...

  5. Delphi TFileStream 打开模式与共享模式

    { TFileStream create mode } fmCreate = $FF00; { Create a file with the given name. If a file with th ...

  6. text段,data段,bss段,堆和栈

    转载:http://blog.chinaunix.net/uid-29025972-id-3874376.html   程序编译后生成的目标文件至少含有三个段,分别为:.text..data和.bss ...

  7. QMsgPack的用法DEMO

    QMsgPack的用法DEMO 引用单元文件: uses qstring, qmsgpack, qjson; 演示一: procedure TForm2.Button10Click(Sender: T ...

  8. OpenERP实施记录(12):付款处理

    本文是<OpenERP实施记录>系列文章的一部分. 1. 在前面的文章中,采购订单确认时自动生成了供应商发票,可以在 会计 > 供应商列表 > 供应商发票 查询,状态为&quo ...

  9. EntityFramework:迁移工具入门

    背景 刚毕业做项目的时候,没有用“迁移”这个概念,系统发布和更新的过程让人非常痛苦,在学习 Ruby On Rails 的过程解除了“迁移”,以后的所有项目都会先确定好“迁移”的方案,本文介绍一下En ...

  10. mysql 中 unix_timestamp和from_unixtime函数

    1.unix_timestamp 将时间转化为时间戳.(date 类型数据转换成 timestamp 形式整数) 没传时间参数则取当前时间的时间戳 mysql> select unix_time ...