- 第1节:HTML5 浏览器支持
- 第2节:HTML5 新元素
- 第3节:HTML5 Canvas
- 第4节:HTML5 SVG
- 第5节:HTML5 MathML
- 第6节:HTML5 拖放
- 第7节:HTML5 地理定位
- 第8节:HTML5 视频(Video)
- 第9节:HTML5 音频(Audio)
- 第10节:HTML5 Input 类型
- 第11节:HTML5 表单元素
- 第12节:HTML5 表单属性
- 第13节:HTML5 语义元素
- 第14节:HTML5 Web 存储
- 第15节:HTML5 Web SQL
- 第16节:HTML5 应用程序缓存
- 第17节:HTML5 Web Workers
- 第18节:HTML5 SSE
- 第19节:HTML5 WebSocket
- 第20节:HTML5 代码规范
- 第21节:HTML5 <!DOCTYPE> 标签
- 第22节:HTML5 <a> 标签
- 第23节:HTML5 <area> 标签
- 第24节:HTML5 <abbr> 标签
- 第25节:HTML5 <applet> 标签
- 第26节:HTML5 <article>标签
- 第27节:HTML5 <aside> 标签
- 第28节:HTML5 <address> 标签
- 第29节:HTML <audio> 标签
- 第30节:HTML5 <b> 标签
- 第31节:HTML5 <base> 标签
- 第32节:HTML5 <blockquote> 标签
- 第33节:HTML5 <br />标签
- 第34节:HTML5 <button> 标签
- 第35节:HTML5 <bdi> 标签
- 第36节:HTML5 <bdo> 标签
- 第37节:HTML5 <body> 标签
- 第38节:HTML5 <canvas> 标签
- 第39节:HTML5 <col> 标签
- 第40节:HTML5 <colgroup> 标签
- 第41节:HTML5 <caption> 标签
- 第42节:HTML5 <em> <strong> <dfn> <code> <samp> <kbd> <var> <cite> 标签
- 第43节:HTML5 <ul> 标签
- 第44节:HTML5 <dl> 标签
- 第45节:HTML5 <del> 标签
- 第46节:HTML5 <dd> 标签
- 第47节:HTML5 <details> 标签
- 第48节:HTML5 <div> 标签
- 第49节:HTML5 <embed> 标签
- 第50节:HTML5 <figcaption> 标签
- 第51节:HTML5 <form> 标签
- 第52节:HTML5 <figure> 标签
- 第53节:HTML5 <footer> 标签
- 第54节:HTML5 <fieldset> 标签
- 第55节:HTML5 <hgroup> 标签
- 第56节:HTML5 <hr> 标签
- 第57节:HTML5 <h1> 至 <h6> 标签
- 第58节:HTML5 <header> 标签
- 第59节:HTML5 <html> 标签
- 第60节:HTML5 <head> 标签
- 第61节:HTML5 <i> 标签
- 第62节:HTML5 <iframe> 标签
- 第63节:HTML5 <input> 标签
- 第64节:HTML5 <img> 标签
- 第65节:HTML5 <ins> 标签
- 第66节:HTML5 <link> 标签
- 第67节:HTML5 <li> 标签
- 第68节:HTML5 <legend> 标签
- 第69节:HTML5 <label> 标签
- 第70节:HTML5 <map> 标签
- 第71节:HTML5 <meta> 标签
- 第72节:HTML5 <menu> 标签
- 第73节:HTML5 <meter> 标签
- 第74节:HTML5 <mark> 标签
- 第75节:HTML5 <nav> 标签
- 第76节:HTML5 <noscript> 标签
- 第77节:HTML5 <ol> 标签
- 第78节:HTML5 <object> 标签
- 第79节:HTML5 <option> 标签
- 第80节:HTML5 <output> 标签
- 第81节:HTML5 <optgroup> 标签
- 第82节:HTML5 <p> 标签
- 第83节:HTML5 <pre> 标签
- 第84节:HTML5 <param> 标签
- 第85节:HTML5 <progress> 标签
- 第86节:HTML5 <q> 标签
- 第87节:HTML5 <rp> 标签
- 第88节:HTML5 <rt> 标签
- 第89节:HTML5 <ruby> 标签
- 第90节:HTML5 <s> 标签
- 第91节:HTML5 <sub> 和 <sup> 标签
- 第92节:HTML5 <span> 标签
- 第93节:HTML5 <small> 标签
- 第94节:HTML5 <style> 标签
- 第95节:HTML5 <strike> 标签
- 第96节:HTML5 <select> 标签
- 第97节:HTML5 <source> 标签
- 第98节:HTML5 <section> 标签
- 第99节:HTML5 <summary> 标签
- 第100节:HTML5 <td> 标签
- 第101节:HTML5 <th> 标签
- 第102节:HTML5 <tt> 标签
- 第103节:HTML5 <tr> 标签
- 第104节:HTML5 <table> 标签
- 第105节:HTML5 <title> 标签
- 第106节:HTML5 <tfoot> 标签
- 第107节:HTML5 <thead> 标签
- 第108节:HTML5 <time> 标签
- 第109节:HTML5 <tbody> 标签
- 第110节:HTML5 <textarea> 标签
HTML5 应用程序缓存
HTML5 应用程序缓存
使用 HTML5,通过创建 cache manifest 文件,可以轻松地创建 web 应用的离线版本。这意味着,你可以在没有网络连接的情况下进行访问。
什么是应用程序缓存(Application Cache)?
HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问。
应用程序缓存为应用带来三个优势:
- 离线浏览 - 用户可在应用离线时使用它们
- 速度 - 已缓存资源加载得更快
- 减少服务器负载 - 浏览器将只从服务器下载更新过或更改过的资源。
浏览器支持
Internet Explorer 10, Firefox, Chrome, Safari 和 Opera 支持应用程序缓存.
HTML5 Cache Manifest 实例
下面的例子展示了带有 cache manifest 的 HTML 文档(供离线浏览):
实例
<html manifest="demo.appcache">
<body>
The content of the document......
</body>
</html>
Cache Manifest 基础
如需启用应用程序缓存,请在文档的<html> 标签中包含 manifest 属性:
<html manifest="demo.appcache">
...
</html>
每个指定了 manifest 的页面在用户对其访问时都会被缓存。如果未指定 manifest 属性,则页面不会被缓存(除非在 manifest 文件中直接指定了该页面)。
manifest 文件的建议的文件扩展名是:".appcache"。
请注意,manifest 文件需要配置正确的 MIME-type,即 "text/cache-manifest"。必须在 web 服务器上进行配置。
Manifest 文件
manifest 文件是简单的文本文件,它告知浏览器被缓存的内容(以及不缓存的内容)。
manifest 文件可分为三个部分:
- CACHE MANIFEST - 在此标题下列出的文件将在首次下载后进行缓存
- NETWORK - 在此标题下列出的文件需要与服务器的连接,且不会被缓存
- FALLBACK - 在此标题下列出的文件规定当页面无法访问时的回退页面(比如 404 页面)
CACHE MANIFEST
第一行,CACHE MANIFEST,是必需的:
/theme.css
/logo.gif
/main.js
上面的 manifest 文件列出了三个资源:一个 CSS 文件,一个 GIF 图像,以及一个 JavaScript 文件。当 manifest 文件加载后,浏览器会从网站的根目录下载这三个文件。然后,无论用户何时与因特网断开连接,这些资源依然是可用的。
NETWORK
下面的 NETWORK 小节规定文件 "login.php" 永远不会被缓存,且离线时是不可用的:
login.php
可以使用星号来指示所有其他其他资源/文件都需要因特网连接:
*
FALLBACK
下面的 FALLBACK 小节规定如果无法建立因特网连接,则用 "offline.html" 替代 /html5/ 目录中的所有文件:
/html/ /offline.html
注意: 第一个 URI 是资源,第二个是替补。
更新缓存
一旦应用被缓存,它就会保持缓存直到发生下列情况:
- 用户清空浏览器缓存
- manifest 文件被修改(参阅下面的提示)
- 由程序来更新应用缓存
实例 - 完整的 Manifest 文件
# 2012-02-21 v1.0.0
/theme.css
/logo.gif
/main.js
NETWORK:
login.php
FALLBACK:
/html/ /offline.html
提示:以 "#" 开头的是注释行,但也可满足其他用途。应用的缓存会在其 manifest 文件更改时被更新。如果您编辑了一幅图片,或者修改了一个 JavaScript 函数,这些改变都不会被重新缓存。更新注释行中的日期和版本号是一种使浏览器重新缓存文件的办法。
关于应用程序缓存的说明
请留心缓存的内容。
一旦文件被缓存,则浏览器会继续展示已缓存的版本,即使您修改了服务器上的文件。为了确保浏览器更新缓存,您需要更新 manifest 文件。
注意: 浏览器对缓存数据的容量限制可能不太一样(某些浏览器设置的限制是每个站点 5MB)。
相关教程
CSS教程