在浏览器缓存这块,缓存同步比较被动,如果依靠设置时间过期的话,那文件更新了将不能及时同步。
今天,发现Wordpress加载js和css都会在文件名后加上一串变量,很多网站都这样,例如je:
以前一直没想明白为什么,今天突然想明白了,这是这个文件的版本号)。
这样做的话,可以把缓存设置成永不过期,当文件修改的话只要修改版本号就可以让缓存失效了,因为url不一样了,优点很明显可以同步浏览器缓存,缺点就是维护麻烦,为了方便维护可以统一用几个变量来控制,只要改变这个变量,那全站的都会更改。
我一直都想写一个静态文件模板,这个模板负责加载js/css,把多个文件在后台合并成一个静态文件,这样就可以减少http链接了,而且开发时也方便,不用考虑合并和压缩的问题。用法类似proxy.php?js=jquery,foo,some 或者proxy.php?css=more,less 如果是css的会递归合并@import的文件。
模板的功能包括[list=1]
[*]合并js和css
[*]首次生成压缩文件
[*]同步浏览器缓存
[/list]我的疑虑,这样做的是不是真的有效果?设计得不好,就会画蛇添足了。而且,会不会付出很多得到很少,折腾自己。
今天,发现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的文件。
模板的功能包括[list=1]
[*]合并js和css
[*]首次生成压缩文件
[*]同步浏览器缓存
[/list]我的疑虑,这样做的是不是真的有效果?设计得不好,就会画蛇添足了。而且,会不会付出很多得到很少,折腾自己。