使用 HTML5,通过创建 cache manifest 文件,可以轻松地创建 web 应用的离线版本。
什么是应用程序缓存(Application Cache)?
HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问。
- 离线浏览 - 用户可在应用离线时使用它们
- 速度 - 已缓存资源加载得更快
- 减少服务器负载 - 浏览器将只从服务器下载更新过或更改过的资源。
浏览器支持
所有主流浏览器均支持应用程序缓存,除了 Internet Explorer。
HTML5 Cache Manifest 实例
下面的例子展示了带有 cache manifest 的 HTML 文档(供离线浏览):
<!DOCTYPE html> <html manifest="/example/html5/demo_html.appcache"> <body> <script type="text/javascript" src="/example/html5/demo_time.js"> </script> <p id="timePara"><button onclick="getDateTime()">获得日期和事件</button></p> <p><img src="/i/w3school_banner.gif" /></p> <p>请打开<a href="/example/html5/html5_html_manifest.html" target="_blank">这个页面</a>,然后脱机浏览,重新加载页面。页面中的脚本和图像依然可用。</p> </body> </html>
Cache Manifest 基础
如需启用应用程序缓存,请在文档的 <html> 标签中包含 manifest 属性:
<!DOCTYPE HTML> <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,是必需的:
CACHE MANIFEST /theme.css /logo.gif /main.js
NETWORK
下面的 NETWORK 小节规定文件 "login.asp" 永远不会被缓存,且离线时是不可用的:
NETWORK: login.asp
可以使用星号来指示所有其他资源/文件都需要因特网连接:
NETWORK: *
FALLBACK
下面的 FALLBACK 小节规定如果无法建立因特网连接,则用 "offline.html" 替代 /html5/ 目录中的所有文件:
FALLBACK: /html5/ /404.html
注释:第一个 URI 是资源,第二个是替补。
更新缓存
一旦应用被缓存,它就会保持缓存直到发生下列情况:
- 用户清空浏览器缓存
- manifest 文件被修改(参阅下面的提示)
- 由程序来更新应用缓存
实例 - 完整的 Manifest 文件
CACHE MANIFEST # 2012-02-21 v1.0.0 /theme.css /logo.gif /main.js NETWORK: login.asp FALLBACK: /html5/ /404.html
重要的提示:
以 "#" 开头的是注释行,但也可满足其他用途。应用的缓存会在其 manifest 文件更改时被更新。如果您编辑了一幅图片,或者修改了一个 JavaScript 函数,这些改变都不会被重新缓存。更新注释行中的日期和版本号是一种使浏览器重新缓存文件的办法。
关于应用程序缓存的注释
请留心缓存的内容。
一旦文件被缓存,则浏览器会继续展示已缓存的版本,即使您修改了服务器上的文件。为了确保浏览器更新缓存,您需要更新 manifest 文件。
注释:浏览器对缓存数据的容量限制可能不太一样(某些浏览器设置的限制是每个站点 5MB)。
相关推荐
第2篇 HTML 5高级应用 第11章 HTML 5的新特性 221 视频讲解:6分钟 11.1 谁在开发HTML 5 222 11.2 HTML 5的新认识 222 11.2.1 兼容性 222 11.2.2 实用性和用户优先 222 11.2.3 化繁为简 223 11.3 ...
HTML5是下一代网页标准,它的出现极大地扩展了Web应用程序的功能,让开发者能够创建更富交互性和功能性的网页。本示例"HTML5——demo"是一个适用于Android平台的HTML5源码项目,它展示了如何在移动设备上运行HTML5...
总的来说,“微信小程序项目实例——今日美食”是一个集前端技术、后端数据管理、用户体验设计于一体的综合项目,对于学习微信小程序开发和移动应用设计的人员来说,是一个很好的实践案例。通过分析和实施这个项目,...
【小程序学习系列——仿知乎界面】是一篇关于微信小程序开发的学习教程,主要目的是通过构建一个类似知乎的用户界面,让开发者掌握小程序的基本架构、组件使用和API调用等技能。在微信小程序的开发过程中,我们需要...
本项目“安卓Android源码——结合html5jscss测试程序附源码.zip”提供了一个示例,展示了如何在Android应用中嵌入和运行HTML5、JS和CSS代码。 1. **WebView组件**:在Android中,WebView是用于显示网页内容的关键...
为了解决这个问题,“js,css缓存杀手——VS插件”应运而生。这款Visual Studio(VS)插件旨在帮助开发者批量为HTML中的`<link>`和`<script>`标签添加版本号,从而强制浏览器重新获取最新的资源,避免使用旧的缓存...
8. **HTML5应用程序缓存**(第8章):App Cache(应用程序缓存)是HTML5离线存储的一部分,允许开发者创建离线Web应用,即使在没有网络连接的情况下,用户也能访问已缓存的网页内容。 9. **HTML5手机应用开发**(第...
HTML5中的应用缓存(Application Cache)是一种离线存储技术,允许Web应用程序在用户没有网络连接的情况下仍能正常运行。这种技术通过创建一个名为`cache manifest`的文件,指定需要缓存的资源,从而实现离线浏览。...
"WEB数据库开发工具——WEB.SQL及其应用" WEB.SQL 是 Sybase 公司推出的中间件产品,用于实现 Web 服务器与数据库服务器之间的互联。它允许用户在 HTML 页面中插入 SQL 数据库命令和 Perl 脚本,从而实现动态生成...
HTML5的本地存储技术是现代Web应用中一个重要的特性,其中IndexedDB是一个强大的、基于数据库的存储机制。...通过熟练掌握其API和工作原理,开发者可以构建更加健壮、响应迅速的Web应用程序,提升用户体验。
本文将深入探讨ASP.NET的两种主要缓存方案——页输出缓存和应用程序缓存,并讨论在多服务器或分布式环境下的扩展缓存解决方案。 1. 页输出缓存 页输出缓存是ASP.NET中的一种常见优化手段,它保存页面的HTML输出,...
在IT行业中,小程序是一种轻量级的应用开发平台,主要用于移动端,提供无需下载安装即可使用的便捷体验。本项目“小程序后端——简易音乐”是针对这一领域的一个实例,它结合了前端与后端技术,实现了一个音乐播放器...
在iOS平台上,结合HTML5,开发者可以创建跨平台的Web应用程序,甚至能够利用本地设备的一些特性,如离线存储、地理定位、多媒体播放等。本文将深入探讨HTML5、C#与iOS之间的关联以及Web SQL数据库的应用。 首先,...
在“html5课程设计”这个项目中,我们可以学习到以下几个关键的HTML5知识点: 1. **新元素的引入**:HTML5引入了一些结构性元素,如(页眉)、(导航)、(区段)、(文章)、(侧边栏)和(页脚),这些元素帮助...
【标题】"WEB应用程序实例——小型教务管理系统"揭示了一个基于Web技术的教育管理软件的开发实践。这个实例深入展示了如何构建一个实用的在线教务管理平台,它可以帮助学校或教育机构有效地组织和管理日常教学活动。...
这个压缩包“ASP网站整站程序源码——Sofee米表程序实例开发.rar”包含了一个基于ASP技术构建的网站应用程序,名为Sofee米表程序,主要用于域名管理或域名投资领域的业务操作。 Sofee米表程序是一个实用的工具,它...
另外,HTML5引入了离线存储机制——Application Cache,允许开发者将一部分网页内容缓存到本地,即使在没有网络连接的情况下,用户也能访问部分网页内容,这对于离线应用和增强用户体验非常有帮助。 在表单处理方面...
5. **安全性**:任何Web应用程序都需要考虑安全问题,如SQL注入、跨站脚本攻击(XSS)等。理解如何通过验证用户输入、参数化查询和使用安全的编程实践来防止这些攻击是必要的。 6. **服务器配置**:ASP应用程序需要...