慎用manifest

参考:
http://mweb.baidu.com/wp-content/uploads/2013/01/%E6%85%8E%E7%94%A8manifest.pdf
http://www.cnblogs.com/_franky/archive/2012/11/23/2783947.html
manifest缓存
本来想用manifest来缓存固定的一些CSS和JS文件,已经实现了缓存。但是存在以下问题:
1、manifest默认会缓存当前页面。当有缓存时就不会重新发出页面初始化请求。比如plan的index页面,有缓存就不会执行Action的index方法。而index方法中有些数据时动态获取的。当然,解决这个问题的办法就是通过AJAX获取数据,手动更新页面数据。但是这样的维护和代码量就变大了。

2、不同参数的同一个Action页面会被当成不同的页面处理。比如m.baidu.com/app?a=1&b=2,通常我们用一些参数来标记这个页面,通过参数来渲染页面内容,但是manifest对于上面的方式,会认为不同的参数表示不同的页面。如果你把内容页做成一个无数据的空壳,这种传参的方式显然不行,好在不一样的hash页面,manifest会认为是同一个页面,比如m.baidu.com/app#detail-111111与m.baidu.com/app#detail-222222会认为和m.baidu.com/app是同一个缓存页面。这样我们就可以通过hash传值了,当然,你也可以通过其它方式传值,比如写入cookie,写入localstorage方式等等。

这样的处理方式同样增加了代码的维护难度和代码量。

因此,最终决定不采用manifest缓存。

manifest内容
CACHE MANIFEST 
#version 0.5.0
CACHE:

#css
../Public/js/jquery-mobile-1.3.1/jquery.mobile-1.3.1.min.css
../Public/js/jquery-mobile-1.3.1/_assets/css/jqm-demos.css
../Public/js/jquery-mobile-datebox-master/css/jqm-datebox.css
../Public/js/jnotify/css/jNotify.jquery.css
../Public/js/uploadifive/uploadifive.css

#js
../Public/js/jquery-1.9.1.min.js
../Public/js/jquery.json-2.3.min.js
../Public/js/jquery-mobile-1.3.1/_assets/js/index.js
../Public/js/jquery-mobile-1.3.1/jquery.mobile-1.3.1.min.js
../Public/js/jquery-mobile-datebox-master/js/jqm-datebox.core.js
../Public/js/jquery-mobile-datebox-master/js/jqm-datebox.mode.calbox.js
../Public/js/iscroller/iscroll.js
../Public/js/uploadifive/jquery.uploadifive.min.js
../Public/js/jnotify/jNotify.jquery.min.js
../Public/js/jquery.validate.js
../Public/js/backbone/underscore.js
../Public/js/backbone/backbone-min.js

#picture 

NETWORK:
../Public/style
../Public/js
../Files/
*


引用

<!DOCTYPE html>
<html manifest="/manifest/plan.manifest">
	<head>

猜你喜欢

转载自lhdst-163-com.iteye.com/blog/1909098