使用版本号来同步浏览器缓存

在浏览器缓存这块,缓存同步比较被动,如果依靠设置时间过期的话,那文件更新了将不能及时同步。

今天,发现Wordpress加载js和css都会在文件名后加上一串变量,很多网站都这样,例如je:
<script src="http://www.iteye.com/javascripts/application.js?1235486423" type="text/javascript"></script> 
后面有一个时间戳,这个时间戳是这个文件的版本号

以前一直没想明白为什么,今天突然想明白了,这是这个文件的版本号)。

这样做的话,可以把缓存设置成永不过期,当文件修改的话只要修改版本号就可以让缓存失效了,因为url不一样了,优点很明显可以同步浏览器缓存,缺点就是维护麻烦,为了方便维护可以统一用几个变量来控制,只要改变这个变量,那全站的都会更改。

我一直都想写一个静态文件模板,这个模板负责加载js/css,把多个文件在后台合并成一个静态文件,这样就可以减少http链接了,而且开发时也方便,不用考虑合并和压缩的问题。用法类似proxy.php?js=jquery,foo,some 或者proxy.php?css=more,less 如果是css的会递归合并@import的文件。

模板的功能包括
  1. 合并js和css
  2. 首次生成压缩文件
  3. 同步浏览器缓存
我的疑虑,这样做的是不是真的有效果?设计得不好,就会画蛇添足了。而且,会不会付出很多得到很少,折腾自己。

你可能感兴趣的:(jquery,PHP,浏览器,css,wordpress)