10.1HTML5离线Web应用概述
10.2 使用HTML5离线Web应用API
10.2.1 检测浏览器是否支持离线Web应用API
if(window.applicationCache)
{
//浏览器支持离线应用
}
10.2.2 搭建简单的离线应用程序
假设开发人员希望搭建一个包含HTML文档、样式表和JavaScript文件的单页面应用程序,同时要为这个HTML5应用程序添加离线支持,那么可参考代码清单10-2,在html元素中加入manifest特性。
代码清单10-2
<!DOCTYPE html>
<html manifest=”application.manifest”>
.
.
.
</html>
修改完HTML文档,接下来需要提供缓存清单文件,用以指明那些资源需要存储在缓存中。代码清单10-3是一个缓存清单文件的内容示例。
CACHE
MAINFEST
example.html
example.js
example.css
example.gif
10.2.3支持离线行为
HTML5引入了一些新的事件,用来让应用程序检测网络是否正常连接。应用程序处于在线状态和离线状态会有不同的行为模式。是否处于在线状态可以通过检测window.navigator对象的属性来做判断。首先,navigator.onLine是一个标明浏览器是否处于在线状态的布尔属性。当然,onLine值为true并不能保证Web应用程序在用户的机器上一定能访问到相应的服务器。而当其值为false时,不管浏览器是否真正联网,应用程序都不会尝试进行网络连接。
10.2.4 manifest文件
离线应用包含一个manifest(清单)文件,此文件中列出了浏览器为离线应用缓存的所有资源。manifest文件的MIME类型是text/cache-manifest。
manifest文件的写法是先写CACHE MANIFEST,然后换行,每行单列资源文件。每行的换行符可以是CR、LF或者CRLF,但文本编码格式必须是UTF8.
添加到CACHE MANIFEST区块中的文件,无论应用程序是否在线,浏览器都会从应用程序缓存中获取该文件。没必要在这里列出应用程序的主HTML资源,因为最初指向manifest文件的HTML文档会被隐含包含进来。但是,如果希望缓存多个HTML文件,或者希望将多个HTML作为支持缓存的应用程序的可选入口,则需要将这些文件都列在CACHE
MANIFEST中。
FALLBACK部分提供了获取不到缓存资源时的备选资源路径。
NETWork部分罗列的资源,无论缓存中存在与否,均从网络获取。
10.2.5 applicationCache API
applicationCache
API是一个操作应用缓存的接口。新的window.applicationCache对象可触发一系列与缓存状态相关的事件。该对象有一个数值型属性window.applicationCache.status代表了缓存的状态。缓存状态共有6种,见表10-2。
数值型属性
|
缓存状态
|
0
|
UNCACHED(未缓存)
|
1
|
IDLE(空闲)
|
2
|
CHECKING(检查中)
|
3
|
DOWNLOADING(下载中)
|
4
|
UPDATEREADY(更新就绪)
|
5
|
OBSOLETE(过期)
|
目前Web上大部分的页面都没有指定缓存清单,所以这些页面的状态就是UNCACHED(未缓存)。IDLE(空闲)是带有缓存清单的应用程序的典型状态。处于空闲状态说明应用程序的所有有资源都已被浏览器缓存,当前不需要更新。如果缓存曾经有效,但现在manifests文件丢失,则缓存进入OBSOLETE(过期)状态。
表10-3 常见事件及其关联的缓存状态
事件
|
关联的缓存状态
|
onchecking
|
CHECKING
|
ondownloading
|
DOWNLOADING
|
onupdateready
|
UPDATEREADY
|
onobsolete
|
OBSOLETE
|
oncached
|
IDLE
|
此外,没有可用更新或者发生错误时,还有一些表示更新状态的事件:
(1)onerror
(2)onnoupdate
(3)onprogress
window.applicationCache有一个update()方法。调用update方法会请求浏览器更新缓存。包括检查新版本的mainfest文件并下载必要的新资源。如果没有缓存或者缓存已过期,则会抛出错误。
10.3 使用HTML5离线Web应用构建应用
需要注意,manifest文件的内容类型必须配置为text/cache-manifest发送到浏览器,如果文件类型不正确,即使浏览器支持应用缓存也会返回缓存错误。
分享到:
相关推荐
第1章 HTML5概述 第2章 Canvas API 第3章 音频和视频 第4章 GELOLCATION API 第5章 Communication API 第6章 WebSockets API 第7章 Forms API ...第10章 构建离线Web应用 第11章 HTML5未来展望
第10章 构建离线web应用 201 10.1 html5离线web应用概述 201 10.2 使用html5离线web应用api 203 10.2.1 检查浏览器的支持情况 203 10.2.2 搭建简单的离线应用程序 203 10.2.3 支持离线行为 204 10.2.4 ...
第10章 构建离线Web应用 201 10.1 HTML5离线Web应用概述 201 10.2 使用HTML5离线Web应用API 203 10.2.1 检查浏览器的支持情况 203 10.2.2 搭建简单的离线应用程序 203 10.2.3 支持离线行为 204 10.2.4 manifest文件 ...
第10章 构建离线Web应用 201 10.1 HTML5离线Web应用概述 201 10.2 使用HTML5离线Web应用API 203 10.2.1 检查浏览器的支持情况 203 10.2.2 搭建简单的离线应用程序 203 10.2.3 支持离线行为 204 10.2.4 manifest文件 ...
第10章 构建离线Web应用 201 10.1 HTML5离线Web应用概述 201 10.2 使用HTML5离线Web应用API 203 10.2.1 检查浏览器的支持情况 203 10.2.2 搭建简单的离线应用程序 203 10.2.3 支持离线行为 204 10.2.4 manifest文件 ...
第10章 构建离线Web应用 201 10.1 HTML5离线Web应用概述 201 10.2 使用HTML5离线Web应用API 203 10.2.1 检查浏览器的支持情况 203 10.2.2 搭建简单的离线应用程序 203 10.2.3 支持离线行为 204 10.2.4 manifest文件 ...
第10章 构建离线Web应用 201 10.1 HTML5离线Web应用概述 201 10.2 使用HTML5离线Web应用API 203 10.2.1 检查浏览器的支持情况 203 10.2.2 搭建简单的离线应用程序 203 10.2.3 支持离线行为 204 10.2.4 ...
第10章 构建离线Web应用 201 10.1 HTML5离线Web应用概述 201 10.2 使用HTML5离线Web应用API 203 10.2.1 检查浏览器的支持情况 203 10.2.2 搭建简单的离线应用程序 203 10.2.3 支持离线行为 204 10.2.4 ...
第10章 构建离线Web应用 201 10.1 HTML5离线Web应用概述 201 10.2 使用HTML5离线Web应用API 203 10.2.1 检查浏览器的支持情况 203 10.2.2 搭建简单的离线应用程序 203 10.2.3 支持离线行为 204 10.2.4 ...
第10章 构建离线Web应用 201 10.1 HTML5离线Web应用概述 201 10.2 使用HTML5离线Web应用API 203 10.2.1 检查浏览器的支持情况 203 10.2.2 搭建简单的离线应用程序 203 10.2.3 支持离线行为 204 10.2.4 ...
第10章 构建离线Web应用 201 10.1 HTML5离线Web应用概述 201 10.2 使用HTML5离线Web应用API 203 10.2.1 检查浏览器的支持情况 203 10.2.2 搭建简单的离线应用程序 203 10.2.3 支持离线行为 204 10.2.4 ...
6. Vue.js或React.js等前端框架:这些框架简化了组件化开发,提供了状态管理,使得大型Web应用的构建更加高效。了解其基本原理和常用API是必备技能。 7. 数据结构与算法:虽然前端开发偏重于实现界面,但良好的算法...
Web程序设计是构建和维护互联网应用程序的关键领域,它涵盖了多种技术和工具,用于创建交互式的、动态的、用户友好的网站。...通过这个阶段的学习,开发者可以更好地理解和实现复杂Web应用程序的构建。
第12章 构建离线Web应用 254 12.1 HTML5离线Web应用概述 254 12.2 使用HTML5离线Web应用API 256 12.2.1 检查浏览器的支持情况 256 12.2.2 搭建简单的离线应用程序 256 12.2.3 支持离线行为 257 12.2.4 ...
- **第10章:整合社交APIs**:讲解了如何利用社交媒体APIs增强应用的社交功能。 - **第11章:比较移动UI框架**:对比分析了几种流行的移动UI框架,帮助开发者选择最适合项目的工具。 - **第12章:打磨并打包应用...
第十二章介绍了在发布Web应用之前需要注意的一些细节,包括性能优化、安全性检查、兼容性测试等。 **12. 移动计算的未来** 第十三章展望了移动计算领域的发展趋势,预测了新技术和新概念可能带来的变革。 **13. ...
利用HTML5的离线存储API,Ajax可以构建离线Web应用。这一章将讲解如何利用localStorage和sessionStorage实现离线数据存储,以及Ajax在离线应用中的应用。 12. 第12章:高级Ajax技巧与最佳实践 最后一章,作者分享...
- **第10章:整合社交APIs** 探讨了如何将社交媒体平台(如Facebook、Twitter等)的功能集成到移动网络应用中,增强用户互动性。 ##### 第五部分:实践案例与未来趋势 - **第11章:比较移动UI框架** 比较了市场...
- **第 16 章:iPhone SDK:从 Web 应用到原生应用** 探讨了如何利用 iPhone SDK 将现有的 Web 应用转换为原生应用,并提供了相应的优化建议。 - **附录:索引** 提供了本书所有术语和知识点的索引,方便读者查找相关...
**YII2.0手册HTML离线版**是针对PHP开发者的一个重要资源,它提供了全面的框架指南和技术细节,帮助开发者高效地利用...通过深入学习和实践,你可以充分利用YII2.0的强大功能,构建出高效、稳定且富有创新性的Web应用。