`
bsr1983
  • 浏览: 1102279 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

第10章 构建离线Web应用

 
阅读更多

 

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,然后换行,每行单列资源文件。每行的换行符可以是CRLF或者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发送到浏览器,如果文件类型不正确,即使浏览器支持应用缓存也会返回缓存错误。

 

分享到:
评论

相关推荐

    HTML5高级程序设计第二版

    第1章 HTML5概述 第2章 Canvas API 第3章 音频和视频 第4章 GELOLCATION API 第5章 Communication API 第6章 WebSockets API 第7章 Forms API ...第10章 构建离线Web应用 第11章 HTML5未来展望

    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 ...

    完整版《HTML5高级程序设计》2

    第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文件 ...

    完整版《HTML5高级程序设计》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文件 ...

    完整版《HTML5高级程序设计》5

    第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文件 ...

    完整版《HTML5高级程序设计》3

    第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文件 ...

    HTML5高级程序设计.part5

    第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 ...

    HTML5高级程序设计.part4

    第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 ...

    HTML5高级程序设计.part1

    第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 ...

    HTML5高级程序设计.part2

    第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 ...

    HTML5高级程序设计.part3

    第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 ...

    html5webpdf

    html5移动web开发指南 第1章 移动互联网时代的WEB技术 第2章 移动设备HTML5页面布局 第3章 HTML5规范的本地存储 ...第10章 跨平台的PHONEGAP应用介绍 第11章 构建基于HTML5的生活轨迹WEB APP 第12章 进阶之路

    HTML5程序设计(第2版).[荷]Peter Lubbers(带详细书签).pdf

    第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 ...

    offline-first-project-manager:脱机优先项目管理工具,构建为带有PouchDB,CouchDB和服务工作者的渐进式Web应用程序

    这个具有离线功能的渐进式Web应用程序是使用PouchDB,CouchDB,服务工作者和Web应用程序清单构建的。 它仅使用客户端代码。 您可以在下面阅读有关其离线优先设计模式的更多信息,在GitHub上浏览代码,或按照以下...

    HTML5移动Web开发指南.pdf

    内容简介编辑 ... 同时,如果你是如下几类人群之一,那么本书非常适合你阅读。 有一定基础或者未来计划的职业是...第10章 跨平台的PhoneGap应用介绍 273 第11章 构建基于HTML5的生活轨迹Web App 337 第12章 进阶之路 366

    udacity-nanodegree-mws:我对Udacity的Mobile Web Specialist Nanodegree的项目工作和学习笔记

    学习笔记专案餐厅评论应用:第3阶段 配套课程 第1部分-构建可访问和响应式Web应用程序响应式网页设计基础响应式图像网络可访问性 第2部分-构建具有离线功能的Web应用程序异步JavaScript请求ES6 JavaScript改进脱机...

    太乐地图下载器V4.6破解+步骤

    支持将下载地图发布为Web地图服务(WMTS),供ArcGIS、SuperMap、Openlayers等客户端直接远程访问,支持Openlayers/ArcGIS API For Javascript/Flex等多款GIS客户端离线浏览,同时支持发布TPK,发布ArcGIS缓存为WMTS...

    Hadoop实战中文版

    9.7 小结 第10章 用Pig编程 10.1 像Pig 一样思考 10.1.1 数据流语言 10.1.2 数据类型 10.1.3 用户定义函数 10.2 安装Pig 10.3 运行Pig 10.4 通过Grunt 学习Pig Latin 10.5 谈谈Pig Latin 10.5.1 数据类型...

    低清版 大型门户网站是这样炼成的.pdf

    第10章 举一反三—实现商品分类管理 625 10.1 商品管理系统需求分析 625 10.2 商品管理系统功能设计 626 10.3 商品类别后台管理 628 10.3.1 展示层jsp 2+struts 2标签库实现 629 10.3.2 控制层struts 2实现 637...

Global site tag (gtag.js) - Google Analytics