启用 Application Cache(续)

接着上一篇,上一篇的思路是在每一张网页的 <html> 中都声明 manifest 文件,manifest 文件中声明想要缓存的元素,如此一来,来访浏览器会将每一张网页都缓存到本地,而浏览器对于缓存的更新是一个很不能控制的过程,即使采用了监听函数来对比本地与远程的 manifest 版本从而更新缓存元素,浏览器也不能及时的刷新网页(虽然理论上是可以及时刷新的),这不是我想要的。

感觉自己还没有能力折腾 HTML5 Local Storage,所以只能采取退而求其次的方法了:

仅只在一张不经常更新的页面的 <html> 中声明 manifest 文件,我选择了 search.html;同时,在除 search.html 外的每张网页中都声明“预加载”的页面(即预加载 search.html),预加载是 html5 的一个特性,中文详细介绍可以看这篇,我在页面中是这样加的。

<link rel="prefetch prerender" href="http://lusir.me/search.html" />

如此一来,现代浏览器(最后能够剩下来的估计只有 Chrome 了)能够在除 search.html 外的网页中预加载 search.html,而后 search.html 会让浏览器去加载 manifest 清单,浏览器按照清单缓存元素。再加上监听函数,缓存策略就完成了。如此的缓存策略很粗糙,对浏览器也没有兼容,但我也不能再折腾到哪了。就这样了……

说武林中有四大高手,前三名分别是东眼,西嘴,南耳,请问第四名叫什么……


Update

  • 2014.04.01 由于没能处理好 appcache 对于加载元素的缓存与更新之间的矛盾,放弃使用 Application Cache 转投 localstorage
文章作者
发布时间
最后修改
2014-04-01 10:28
分类
标签