manifest离线网络应用

来源:互联网 发布:淘宝美工在哪里学 编辑:程序博客网 时间:2024/04/27 20:57

应用程序缓存三大优势:

1,离线浏览:用户可以在应用离线时使用它们
2,提高速度:已经缓存的资源加载得更快
3,减轻服务器负荷:浏览器将只从服务器下载更新过或更改过的资源。这样当用户无法上网时,仍然可以使用这些文件完成一些功能。

实现文件缓存

在网页的HTML元素中加上manifest

<html manifest="xxx.manifest">...</html>

而我们需要在HTML文件外定义一个manifest清单文件
命名为“”xxx.manifest“”
代码格式如下

CACHE MANIFEST# offline gamepk v1.1# offline gamepk v1.2//或者写 #offline gamepk modified by 10/23/2016CACHE:index.htmltest.csstest.jstest.imgFALLBACK:/4399.php  /sousuo.html/7k7k.php  /sousuo.htmlNETWORK:/qqzone.php

以上是一个比较完整且简单的manifest缓存清单文件

主要有三个关键字

1.CACHE:用来描述要缓存的文件
2.FALLBACK:用来定义不能获取到指定文件时的备抵机制,它定义了一个重定向文件,当无法访问一个文件时,它就重定向到另一个文件。所以每一行都会有两个URI,第一个是资源文件URI,第二个是重定向的URI。
例如上面的
/4399.php /sousuo.html
3.NETWORK:用来定义白名单,表示定义的文件必须访问网络。例如一些用户登录验证,就必须要连接网络,不能缓存该文件。
例如上面的
/qqzone.php
表示QQ空间必须要连接网络,不能缓存离线

拓展

FALLBACK:
/ /baidu.html
这里表示如果用户离线时,将所有文件都重定向到baidu.html代替

NETWORK:
*
这里用通配符*表示所有资源,即是说所有资源都必须通过网络连接才能访问,所有资源都不被缓存:

当上面两个例子配合使用是就表示。因为所有文件都不缓存,所有处于用户离线时,都重新定向到另一个文件。

注释
缓存清单的注释使用的是#作为注释声明符,只能单行注释
上面个的代码
# offline gamepk v1.1
用于定义web应用的版本,一般都是用在第一行注释

更新缓存

而第二行的代码
# offline gamepk v1.2//或者写 #offline gamepk modified by 10/23/2016
作用是用于更新缓存。
要知道web应用的缓存更新只在清单文件被修改时才会更新,但是只修改要缓存的内容并没有更新到本地的缓存,所以这时候需要用过修改manifest文件来告诉浏览器需要更新。主要有两种写法:
一是修改为新的版本号,二是修改日期。
以上的更新缓存方法属于自动更新的方法
其实我们还可以通过运用js来进行widow.applicationCache.update()进行手动更新
这是一个用于更新的接口功能
具体应用的方法是
1,先用window.applicationCache.status来检测其值是否为UPDATEREADY。
2,如果是则进行调用widow.applicationCache.update()更新缓存

示范代码如下:

if(window.applicationCache.status==window.applicationCache.UPDATEREADY){    widow.applicationCache.update();}
1 0
原创粉丝点击