Click into




OSA秋装新品女装韩版修身OL通勤纯色泡泡袖小西装短外套女W13254 OSA2012秋装新品女装韩版修身通勤泡泡袖打底衫长袖T恤女款T13180 OSA2012秋装新品男装休闲宽松长袖圆领拼接针织T恤潮男MT24083



【Justyle】英伦立领时尚秋冬修身男士式装款立领拉链夹克外套 2012英伦新款秋冬季直筒型男款时尚纯棉潮流男士装休闲长裤 【Justyle】英伦新款男士休闲中腰宽松牛仔裤男款直筒牛仔裤



【限时7折】缪诗真爱邂逅超聚拢调整型女士内衣性感蕾丝 美背文胸 买一送二2件包邮 爆款文胸性感胸罩内衣 深V聚拢调整型文胸收副乳 可可迷 专柜正品 精油珠新女内衣胸罩 调整型文胸聚拢厚小胸T1065



丰胸产品 泰国圣荷纳米增大坚挺2月装 赠野葛根片中药丰胸药 Elelen左旋肉碱茶多酚减肥胶囊 瘦身产品 中草药配方 正品 买1送1 淘金币 快速丰乳膏美乳膏 丰胸精油搭配 美胸风胸丰胸产品排行榜



59元起 爱情侣公寓关谷恐龙睡衣连体冬珊瑚绒卡通家居服动物皮卡 家居服恐龙皮卡丘奶牛连体卡通动物可爱珊瑚绒爱情侣公寓关谷睡衣 包邮长袖卡通情侣连体睡衣动物珊瑚绒恐龙史迪仔熊猫加肥大码成康



怡君 2012秋冬季新款品 真皮平底雪地靴 狐狸毛短保暖靴 平跟女靴 淘金币 JUNJOY怡君 2012冬季 真皮雪地靴 女短靴子 平底跟情侣款 步伊鸟雪地靴女2012新款真皮牛皮保暖鞋雪地棉短筒平底短靴子女鞋



【一淘专享价】BEDOOK细肤淡印霜30g 去痘印凹洞痘印修复祛痘印 皙肤泉控油祛痘套装 祛痘印/青春痘 男女士去痘套装 正品 包邮 金丝玉帛清痘除印套装 中药消炎祛痘 去痘疤 痘印去豆坑男女正品
代码改变世界

怎样启用javascri初学者使用Application Cache指南

2012-04-27 21:47  linux svn 命令 mac svn svn merge  阅读(170)  评论(0)    收藏  举报

  对于webapp来说,离线应用功能已经越来越重要。诚然,浏览器本身就有缓存机制,但是,这些缓存机制不够可靠,可能并不会按你所想要的方式运行。HTML5则通过ApplicationCache接口处理了离线应用中的一些问题。

  AD:

  对于webapp来说,离线应用功能已经越来越重要。诚然,浏览器本身就有缓存机制,但是,这些缓存机制不够可靠,可能并不会按你所想要的方式运行。HTML5则通过ApplicationCache接口处理了离线应用中的一些问题。

  使用这个接口让你的应用拥有三方面的优势:

  ◆离线浏览——用户在不能联网的时候依然能浏览整个站点

  ◆高速——缓存资源是存储在本地的,因此能更快加载。

  ◆更小的服务器负载——浏览器只需要从服务器端下载有改变的资源即可,相同资源不需要重复下载。

  ApplicationCache(或AppCache)让一个开发者可以指定浏览器需要保存哪个文件。当用户在离线情况下时,即使他们按了刷新按钮,你的应用也能正确加载和工作。

  CACHEMANIFEST文件

  cachemanifest文件是一个简单的文本文件,其中列出了浏览器需要缓存的资源。

  引用一个MANIFEST文件

  为了让一个应用能启用applicationcache,需要在文档的html标签中包含manifest属性,如下怎样启用javascri初学者使用Application Cache指南所示:

  你需要在你想要缓存的webapp的每一页中都包含manifest属性。如果一个页面没有manifest属性,它将不会被缓存(除非在manifest文件中显式指定了这个页面)。这意味着只要用户访问的页面包含manifest属性,它都将会被加入applicationcache中。这样,就不用在manifest文件中指定需要缓存哪些页面了。

  Manifest属性可以指定一个绝对URL或是一个相对径,但是,一个绝对URL需要和webapp是同源的。一个manifest文件可以是任何扩展文件类型,但必须有正确的mime-type。如下所示:

  以“#”开头的都是注释,这些注释还可以起到另外的作用。一个应用只有在manifest文件发生变化时才会更新cache。例如,如果你编辑了图像或是改写了一个Javascript函数,cache并不会发生更新。你必须改写manifest文件本身来通知浏览器需要更新cache文件了。通过在manifest文件中添加一行注释,在其中写上版本号,或者文件hash值,或者时间戳,货到付款的亲子装你都可以确保用户拥有你的软件的最新版本。如果有新版本出现,你同样可以以编程的方式更新cache,就跟在Updatingthecache中所讨论的那样。

  一个manifest文件可能包括三个部分:CACHE,NETWORK以及FALLBACK.

  CACHE:

  这是默认部分,列在这个条目下的文件(或者紧跟在CACHEMANIFEST字符串之后的)都会在第一次被下载后进入cache。

  怎样启用javascriptNETWORK:

  这一部分中所列出的资源都是需要联网使用的资源。它们都不会进入cache中,即使用户处于离线状态。这部分可能会使用Wildcards。

  FALLBACK:

  可选部分,指定了如果资源获取失败,将会呈现怎样的页面。第一个URL是资源,第二个就是llback页面。两个URL都必须是相对地址,并且由同一个manifest文件指定。可以使用Wildcards。

  注意:这三部分可以以任何顺序在manifest文件中出现,并且每部分都可以在一个manifest文件中出现多次。

  下面的manifest文件定义了一个“catch-all”页面(offline.html),这个页面将会在用户试图离线访问网站根节点时显示。它还指明了需要联网使用的其他资源(如远程站点上的资源)。

  注意:引用了你的manifest文件的HTML文件都会自动被缓存,因此,没有必要在你的manifest文件中再指定这个文件,但是,在manifest文件中指定这个文件是一种更好的做法。

  注意:页面上基于SSL的HTTPcacheheaders以及cachingrestrictions都会被cachemanifests重写。因此,基于https的页面也能离线工作。

  更新缓存(CACHE)

  如果一个应用是在离线情况下,那么它会保持它的缓存状态,除非有以下事件发生:

  ◆用户清除了浏览器中存储有你的站点的数据。

  ◆manifestfile被修改了。注意:修改了在manifest文件中列出的某个文件并不会让浏览器重新缓存资源。必须是manifest文件本身改变了,才会重新进行缓存。

  ◆appcache通过编程更新了。

  缓存状态CACHESTATUS

  在程序中,你可以通过window.applicationCache对象来访问浏览器的appcache。你可以查看status属性来获取cache的当前状态:

  注意:像这样使用update()和swapCache()并不会将更新后的资源呈现给用户。这仅仅是让浏览器检查manifest文件是否发生了更新,然后下载指定的更新内容,重新填充appcache。因此,要让用户看到更新后的内容,需要两次页面下载,一次是更新appcache,一次是更新页面内容。

  好消息是,你可以避免两次页面下载带来的麻烦。为了让用户能看到你的站点的最新版本,设置一个来页面加载时的updateready事件。

  APPCACHE事件(APPCACHEEVENTS)

  也许你已经想到了,还有更多事件可以反映出cache的状态。在诸如下载、appcache更新、出现错误等事件都会让浏览器触发相应事件。下面的代码片段为每一类cacheevent都设置了: