网页设计与开发第7章HTML高级应用.ppt

另外,在访问缓存名单时如果返回一个HTTP404错误(页面未找到),或者410错误(永久消失),则触发obsolete事件。 在整个过程中,如果任何与本地缓存有关的处理中发生错误的话,都会触发error事件。可能会触发error事件的情况分为以下几种。 缓存名单返回一个HTTP 404错误(页面未找到),或者410错误(永久消失)。 缓存名单被找到且没有更改,但引用缓存名单的HTML页面不能正确下载。 缓存名单被找到且被更改,但浏览器不能下载某个缓存名单中列出的资源。 开始更新本地缓存时,缓存名单再次被更改。 【例7-3】 为了说明这个事件流程,在下面的代码中,将浏览器与服务器在交互过程中所触发的一系列事件用文字的形式显示在页面上,这个页面中可以看出这些事件发生的先后顺序。其主要代码如下所示。 !DOCTYPE HTML html manifest=applicationCacheEvent.manifest head meta charset=UTF-8 titleapplicationCache事件流程示例/title script function drow() var msg=document.getElementById(mr); applicationCache.addEventListener(checking, function() { mr.innerHTML+=checkingbr/; }, true); applicationCache.addEventListener(noupdate, function() { mr.innerHTML+=noupdatebr/; }, true); applicationCache.addEventListener(downloading, function() { mr.innerHTML+=downloadingbr/; }, true); applicationCache.addEventListener(progress, function() { mr.innerHTML+=progressbr/; }, true); applicationCache.addEventListener(updateready, function() { mr.innerHTML+=updatereadybr/; }, true); applicationCache.addEventListener(cached, function() { mr.innerHTML+=cachedbr/; }, true); applicationCache.addEventListener(error, function() { mr.innerHTML+=errorbr/; 这段代码运行结果分为以下三种情况。 在Opera浏览器中首次打开网页时的页面如图7-3所示。 图7-3 applicationCache事件流程(首次打开页面时) 在Opera浏览器中再次打开网页(且manifest文件没有更新时)的页面如图7-4所示。 图7-4 applicationCache事件流程(再次打开网页且manifest文件没有更新时) 在Opera浏览器中再次打开网页(且manifest文件已被更新时)的页面如图7-5所示。 图7-5 applicationCache事件流程(再次打开网页且manifest文件已被更新时) 7.3 检测在线状态 7.3.1 navigator.onLine属性 7.3.2 online与offline事件 7.3.3 离线数据交互应用开发过程 navigator.onLine属性可返回当前是否在线。如果返回true,则表示在线;如果返回false,则表示离线。当网络状态发生变化时,navigator.onLine的值也随之变化。开发者可以通过读取它的值获取网络状态。 7.3.1 navigator.onLine属性 如果开发者需要在网络状态发生变化时立刻得到通知,则可以通过HTML提供的online/offline事件来检测。当在线/离线状态切换时,body元素上的online/offline事件将会被触发,并沿着 document.body、document和window触发。因此,开发者可以通过它们的online/o

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档