HTML 5 应用程序缓存_html/css_WEB-ITnose
http://www.w3school.com.cn/html5/html_5_app_cache.asp
接下来通过实际案例介绍HTML5应用程序缓存的介绍。
一 应用服务器
应用服务器使用tomcat.
在tomcat的web.xml 添加如下配置,因为manifest文件返回时MIME-type必须为 text/cache-manifest
appcache text/cache-manifest
二 页面
manifest文件default.appcache
缓存staticPage.html,不缓存 * 即所有文件。如果页面不存在或无法连接到网路,跳转到errorPage.html
CACHE MANIFEST staticPage.html NETWORK: * FALLBACK:/ errorPage.html
index.html 引入default.appcache 缓存文件
Insert title here this is the index page!
staticPage.html
Insert title here this is the static page! eee
randomPage.html
Insert title here This is the random page!
errorPage.html
Insert title here Error !!!
所有以上html及缓存文件(default.appcache)都在同一目录下。
现在让我们看看测试结果如何.
访问 http://localhost:8080/webapp/index.html
结果如下
从控制台上的信息,可知staticPage.html,errorPage.html已被缓存.
停止服务器。
访问 http://localhost:8080/webapp/staticPage.html 正常。缓存起效
访问 http://localhost:8080/webapp/randomPage.html 返回errorPage.html内容。yes,FALLBACK配置起效.
访问 http://localhost:8080/webapp/index.html 正常. no, 这不是我们想要的,因为我们并没有设置这个页面要缓存。 从w3cshcool介绍中可知 每个指定了 manifest 的页面在用户对其访问时都会被缓存。
有如下一个方案针对以上问题。
添加cachePage.html
Insert title here
修改index.html body内添加如下。
经测试,不可行。
summary:
如果应用有A,B,C,D 页面。
A 页面中引入了一个manifest文件,该manifest文件,缓存B文件,C文件作为错误页面。
当请求A页面是,浏览器会缓存A,B,C页面,及manifest文件。
如果A、B、C页面有跟新,要刷新文件,就对服务器端的manifest文件做任意修改(或者删除服务器端的manifest文件, 如果这样当用户访问任意缓存页面时,浏览器会尝试同步manifest文件,发现文件不存在,然后删除所有客户端缓存)。
每次访问A,B,C(缓存页面),浏览器都会对manifest文件做一次同步。
访问非缓存的文件,则manifest文件不会同步。
也就是说,每次访问缓存文件,浏览器会去同步manifest文件,
如果manifest文件有跟新,则刷新缓存文件列表(更新缓存文件、删除缓存文件、添加缓存文件)。
然后再次访问缓存文件时就可以看到更新的内容了。
以上都在chrome版本41.0.2272.118做测试。
推荐阅读
-
同一个表单,根据单击的按钮跳转到不同的页面_html/css_WEB-ITnose
-
使用css3背景渐变中的透明度来设置不同颜色的背景渐变_html/css_WEB-ITnose
-
css水平居中那点事_html/css_WEB-ITnose
-
请问下,webapp里面长按页面弹出来的菜单可以隐藏或者更改么_html/css_WEB-ITnose
-
网页总是有上边距,且JS脚本只能用于IE_html/css_WEB-ITnose
-
请问如何实现table的外框和内框线的粗度不同??_html/css_WEB-ITnose
-
HTML5页面嵌入小程序没有返回按钮及返回页面空白的问题
-
浏览器地址栏网址始终只显示主域名问题_html/css_WEB-ITnose
-
求高手,模仿百度页面,页面缩小之后为什么排版都变了,应该怎样布局才不会乱!_html/css_WEB-ITnose
-
使用checkbox实现纯CSS下拉框_html/css_WEB-ITnose