




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章离线Web应用10.
1离线Web应用概述10.
2创建HTML5离线应用10.
3浏览器与服务器的交互过程10.
4
applicationCache对象10.
5小结返回10.
1离线Web应用概述10.1.1离线Web应用的基本知识在Web应用中使用缓存的原因之一是为了支持离线应用。离线应用有很好的使用价值,特别是当无法上网的时候,如火车过隧道、乘坐飞机或无线设备的信号出现故障时等。如果应用程序只需要偶尔进行网络通信,应用资源在本地,则离线应用变得很重要。随着完全依赖浏览器的设备出现,Web应用程序在不稳定的网络环境下持续工作变得可行。HTML5缓存机制综合了Web应用和桌面应用的优势,基于Web技术构建的Web应用程序可在浏览器中运行并在线更新,也可在脱机状态下使用。但是,目前的Web服务器不为脱机应用程序提供任何默认的缓存行为,所以要想使用这一新的离线应用功能,必须在应用中明确声明。下一页返回10.
1离线Web应用概述HTML5的离线应用缓存使得用户可在无网络连接的情况下运行应用程序,这类应用程序的用处很多。离线应用的场景很多:如阅读和撰写电子邮件、编辑文档、编辑和展示演示文稿、创建代办事件列表等。开发人员可以指定具体哪些资源(如HTML、CSS、JavaScript和图像)可以脱机使用。使用离线存储,可避免加载应用程序时常规的网络请求。如果缓存清单文件是最新的,浏览器就无需检查其他资源是否是最新的。大部分应用程序可以非常迅速地从本地缓存中加载完成。从缓存中加载资源可以节省带宽。上一页下一页返回10.
1离线Web应用概述缓存清单文件中标识的资源构成了应用缓存,是浏览器持久存储资源的地方,通常在硬盘上。有些浏览器向用户提供了查看应用程序缓存的方法,如最新版的Firefox,其“about:cache”页面会显示应用程序缓存的详细信息,提供查看缓存中每个文件的方法,如图10.1所示。上一页下一页返回10.
1离线Web应用概述10.1.2本地缓存和浏览器网页缓存的区别应用程序的本地缓存与浏览器网页缓存有许多方面的区别:本地缓存是为整个Web应用程序服务的,而浏览器的网页缓存只为单个网页服务。任何网页都有网页缓存,而本地缓存指缓存那些指定需要缓存的网页。网页缓存是不安全、不可靠的,用户不知道网站中到底缓存了哪些网页以及哪些资源。而本地缓存是可靠的,用户可以控制对哪些内容进行缓存、不对哪些内容进行缓存,还可以编程来控制缓存的更新,利用缓存对象的各种属性、状态和事件,使得应用程序更加强大。上一页返回10.2创建HTML5离线应用10.2.1缓存清单(manifest)Web应用程序的本地缓存是通过每个页面的manifest文件来管理的。manifest文件是一个简单的文本文件,该文件以清单的形式列举了需要被缓存或不需要被缓存的资源文件的文件名称,以及这些资源文件的访问路径。可以对每一个页面单独指定一个manifest文件,也可以对整个Web应用程序指定一个总的manifest文件。下一页返回10.2创建HTML5离线应用在manifest文件中,第一行“CACHEMANIFEST”,把本文件的作用告知浏览器,设置本地缓存中的资源。注释行以“#”开头,注释前面可以有空格,但必须单独成行。manifest文件最好加上版本号。更新manifest文件时一般也会对版本号更新。manifest文件指定资源文件,文件路径可以是绝对路径,也可以是相对路径,指定时每个资源文件为一行。资源一般分为3类,分别是CACHE、NETWORK、FALLBACK。上一页下一页返回10.2创建HTML5离线应用(1)CACHE类:指定别缓存在本地的资源文件。为某个页面指定需要本地缓存的资源文件时,不需要把这个页面本身指定在CACHE类别中,因为如果一个页面具有manifest文件,浏览器会自动为这个页面进行本地缓存。(2)NETWORK类:指定不进行本地缓存的资源文件,这些资源文件只有当客户端和服务器建立连接的时候才能访问。本实例该类别中“”为通配符,表示没有在本manifest文件中指定的资源文件都不进行本地缓存。(3)FALLBACK类:该类别中每行指定两个资源文件,第一个资源文件为能够在线访问时使用的资源文件,第二个资源文件为不能在线访问时使用的备用资源文件。上一页下一页返回10.2创建HTML5离线应用10.2.2配置IIS服务器在应用程序完全离线之前,还需要正确地提供清单文件。清单文件必须有扩展名.manifest和正确的mime-type。如果使用Apache这样的Web服务器,需要在Apache中找到AppServ/Apache2.2/conf文件夹中的mine.types文件并向其添加如下内容:text/cache-manifestmanifest这使用户在请求任何扩展名为.manifest的文件时,Apache将发送text/cache-manifest文件头部。在微软的IIS服务器中按下列步骤配置:上一页下一页返回10.2创建HTML5离线应用(1)右键选择默认网站或需要添加类型的网站,弹出属性对话框。(2)选择“HTTP头”标签。(3)在MIME映射下,单击文件类型按钮。(4)在打开的MIME类型对话框中单击“新建”按钮。(5)在关联扩展名文本框中输入“manifest”,在内容类型文本框中输入“text/cache-manifest”,然后单击“确定”按钮。上一页下一页返回10.2创建HTML5离线应用10.2.3浏览器缓存清单为了让浏览器能够正常阅读该文本文件,需要在Web应用程序页面上〈html〉标签的manifest属性中指定manifest文件的URL地址。指定方法如下:上一页返回10.3浏览器与服务器的交互过程当使用离线应用时,浏览器与服务器之间的通信过程很有用。例如一个网站以index.html为主页,该主页使用index.manifest文件为manifest文件,在该文件中请求缓存index.html、mr.js、mr1.jpg、mr2.jpg等文件。首次访问该网站时,其交互过程如下:(1)浏览器请求访问网站。(2)服务器返回请求网页,如index.html。(3)浏览器解析网页,请求页面上的所有资源文件,包括HTML文件、图像文件、CSS文件、JS文件以及manifest文件。(4)服务器返回所有资源文件。下一页返回10.3浏览器与服务器的交互过程(5)浏览器处理manifest文件,请求manifest中所有要求本地缓存的文件,包括index.html页面本身,即使刚才已经请求过这些文件。如果要求本地缓存所有文件,这将是一个比较大的重复的请求过程。(6)服务器返回所有要求本地缓存的文件。(7)浏览器对本地缓存进行更新,存入包括页面本身在内的所有要求本地缓存的资源文件,并且触发一个事件,通知本地缓存被更新。上一页返回10.4applicationCache对象applicationCache对象代表本地缓存,可以用它来通知用户本地缓存中已经被更新,也允许用户手工更新本地缓存。在浏览器与服务器的交互过程中,当浏览器对本地缓存进行更新,加入新的资源文件时,会触发applicationCache对象的updateready事件,通知本地缓存已经被更新。10.4.1swapCache方法该方法用来手工执行本地缓存的更新,它只能在applicationCache对象的up-dateReady事件被触发时调用,updateReady事件只有在服务器上的manifest文件被更新,并且把manifest文件中所要求的资源文件下载到本地后触发。该事件的含义是“本地缓存准备被更新”。当这个事件被触发后,可以用swapCache()方法来手工进行本地缓存的更新。下一页返回10.4applicationCache对象当本地缓存的容量非常大,本地缓存的更新工作将需要相对较长的时间,而且还会把浏览器锁住。这时最好有个提示,告诉用户正在进行本地缓存的更新,代码如下:上一页下一页返回10.4applicationCache对象10.4.2applicationCache对象的事件ApplicationCache对象除了有update方法与swapCache方法外,还有一系列的事件。下面通过浏览器与服务器的交互过程来看看这些事件是如何被触发的。首次访问网站时,事件被触发的过程如下:(1)浏览器请求访问网站。(2)服务器返回请求网页,例如index.html。(3)浏览器发现该网页具有manifest属性,触发checking事件,检查mani-fest文件是否存在。不存在时,触发error事件,表示未找到manifest文件,不执行步骤(6)。上一页下一页返回10.4applicationCache对象(4)浏览器解析index.html网页,请求页面上的所有资源文件。(5)服务器返回所有资源文件。(6)浏览器处理manifest文件,请求manifest中所有要求本地缓存的文件,包括index.html页面本身,即使刚才已经请求过该文件。如果要求本地缓存所有文件,这将是一个比较大的重复的请求过程;(7)服务器返回所有要求本地缓存的文件。(8)浏览器触发downloading事件,然后开始下载这些资源。在下载的同时,周期性地触发progress事件,开发人员可以用编程的手段获取多少文件已被下载,多少文件仍然处于下载队列等信息。上一页下一页返回10.4applicationCache对象(9)下载结束后触发checked事件,表示首次缓存成功,存入所有要求本地缓存的资源文件。再次访问网站,步骤(1)~(5)同上,在步骤(5)执行完之后,浏览器将核对manifest文件是否被更新,若没有被更新,则触发noupdate事件,步骤(6)开始的交互过程不会被执行。如果它被更新了,将继续执行后面的步骤,在步骤(9)中不触发checked事件,而是触发updateready事件,这表示下载结束,可以通过刷新页面来使用更新后的本地缓存,或调用swapCa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业消防培训合同范例
- “家国情怀”培养视域下人教版和统编版高中历史教材变化研究
- 共享公寓转让合同范例
- 加工类技术合同范本
- 个人项目合作合同范例
- 保姆用人合同范例
- 借款消费合同范例
- 东鹏控股合同范例
- 中介拆迁合同范例
- 企业花艺服务合同范例
- 2022年大梦杯福建省初中数学竞赛试题参考答案及评分标准
- 边坡开挖施工要求
- 数字图像处理-6第六章图像去噪课件
- 监理施工设计图纸签发表
- 部编版六年级下册语文教案(全册)
- 2022年湖北成人学士学位英语真题及答案
- DB43∕T 801-2013 二次张拉低回缩钢绞线竖向预应力短索锚固体系设计、施工和验收规范
- 附表1:网络及信息安全自查表
- 公共场所健康证体检表
- 普通高等学校独立学院教育工作合格评估指标体系(第六稿)
- 多维阅读第13级—A Stolen Baby 小猩猩被偷走了
评论
0/150
提交评论