HTML 5 离线程序
1.本地缓存与浏览器网页缓存的区别
首先,本地缓存是为整个web应用程序服务的,而浏览器的网页缓存只服务于单个网页。任何网页都具有网页缓存,而本地缓存只缓存那些你指定的缓存的页面。
其次,网页缓存也是不安全,不可靠的,因为我们不知道在网站中到底缓存了那些网页,以及缓存了网页上的那些资源。而本地缓存是可靠的,我们可以控制对那些内容进行缓存。
2.manifest文件
Web应用程序的本地缓存是通过个每个页面的manifest文件来管理的。manifest文件是一个简单文本文件,在该文件中以清单的形式列举了需要被缓存或不需要被缓存的资源文件的文件名称,以及这些资源文件的访问路径。
CACHE MANIFEST //以把文件的作用告知浏览器,即对本地缓存中的资源文件进行具体设置。同时,真正运行或测试离线Web应用程序的时候,需要对服务器进行配置,让服务器支持text/cache-manifest这个MIME类型。
CACHE://指定需要被缓存在本地的资源文件。
Index.html
hello.js
images/myphoto.jpg
NETWORK://指定不进行本地缓存的资源文件,这些资源文件只能当客户端与服务器端建立连接的时候才能访问。
http://XXXX/Test
Test.asp
* //通配符,表示没有在本manifest文件中指定的资源文件都不进行本地缓存。
FALLBACK://每行中指定两个资源文件,第一个资源文件为能够在线访问时使用的资源文件,第二个资源文件为不能在线访问时使用的备用资源文件。
online.js locale.js
CACHE:
newhello.html
newhello.js
为了让浏览器能够正常阅读该文本文件,需要在Web应用程序页面上的html标签的manifest属性中指定manifest文件的URL地址。
3.applicationCache对象
applicationCache对象代表了本地缓存,可以用它来通知用户本地缓存中已经被更新,也允许用户手工更新本地缓存。
applicationCache.onUpdateReady=function(){//本地缓存已被更新,通知用户};
另外,你可以通过applicationCache的swapCache方法来控制如何进行本地缓存的更新及更新的时机。swapCache方法用来手工执行本地缓存的更新,它只能在applicationCache对象的updateRedy事件被触发时调用,updateReady事件只有在服务器上的manifest文件被更新,并且把manifest文件中所有要求的资源文件下载到本地后触发。