锁定老帖子 主题:资源文件的时间戳设计
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
作者 | 正文 | |||||||||||||||||||||||||
发表时间:2012-04-16
最后修改:2012-04-18
在互联网应用中,为了提高用户的浏览速度,开发人员需要让浏览器准确的缓存资源文件,如JS,CSS和图片文件。所以需要在使用JS和CSS文件时加一个时间戳。因为如果文件名一样,但时间戳不一样,浏览器会认为是不同的文件而重新下载,不使用缓存,如hello.js?V=20120212
时间戳的设计方案
当然方案3是最好的解决方案,通过SVN接口找到本次项目修改的文件也不难,但是修改时间戳时有几个问题比较麻烦。
使用apache的缓存配置。设置文件的缓存周期为1天。 ExpiresActive on #缓存1天。 ExpiresBytype text/css "access plus 1 days " ExpiresByType application/x-javascript "access plus 1 days " ExpiresByType image/jpeg "access plus 1 days " Expiresbytype image/gif "access plus 1 days "
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
||||||||||||||||||||||||||
返回顶楼 | ||||||||||||||||||||||||||
发表时间:2012-04-17
好文,没人讨论啊,我来支持下。
第三种方式 我觉得可以这样来实现: 1、浏览器 将 Last-Modified 发到服务器 2、服务器专门写个控制器 来接受 js/css请求, 在控制器设置时间戳(当有修改就重新设置),如果浏览器发来的时间戳 和我们设置的时间戳 匹配 发回304,否则重新返回新数据即可。
这样 就形成集中访问点 统一管理 Last-Modified
还可以使用ETag实现,但它需要生成内容的摘要,觉得还是 Last-Modified比较好点。 |
||||||||||||||||||||||||||
返回顶楼 | ||||||||||||||||||||||||||
发表时间:2012-04-18
jinnianshilongnian 写道
好文,没人讨论啊,我来支持下。
第三种方式 我觉得可以这样来实现: 1、浏览器 将 Last-Modified 发到服务器 2、服务器专门写个控制器 来接受 js/css请求, 在控制器设置时间戳(当有修改就重新设置),如果浏览器发来的时间戳 和我们设置的时间戳 匹配 发回304,否则重新返回新数据即可。
这样 就形成集中访问点 统一管理 Last-Modified
还可以使用ETag实现,但它需要生成内容的摘要,觉得还是 Last-Modified比较好点。
|
||||||||||||||||||||||||||
返回顶楼 | ||||||||||||||||||||||||||
发表时间:2012-04-18
最后修改:2012-04-18
fantasy 写道
jinnianshilongnian 写道
好文,没人讨论啊,我来支持下。
第三种方式 我觉得可以这样来实现: 1、浏览器 将 Last-Modified 发到服务器 2、服务器专门写个控制器 来接受 js/css请求, 在控制器设置时间戳(当有修改就重新设置),如果浏览器发来的时间戳 和我们设置的时间戳 匹配 发回304,否则重新返回新数据即可。
这样 就形成集中访问点 统一管理 Last-Modified
还可以使用ETag实现,但它需要生成内容的摘要,觉得还是 Last-Modified比较好点。
没有实现,不过最近在写SpringMVC的东西 里边有Last-Modified的支持,才想到这种方式。
|
||||||||||||||||||||||||||
返回顶楼 | ||||||||||||||||||||||||||
发表时间:2012-04-18
进来学习下,百度了,有说改文件名,但估计被LZ排除了...
|
||||||||||||||||||||||||||
返回顶楼 | ||||||||||||||||||||||||||
浏览 2803 次