我有一个jsp页面,引入了两个js文件
第一个js文件,压缩后大小为2M,第一次访问页面,20秒才显示出来,这个文件可能一两年才会修改一次,我希望浏览器一直缓存它
第二个js文件,大小为20K,这个文件经常一天要变动几次,我希望浏览器不要缓存它我这样的需求,该怎么实现呢?
第一个js文件,压缩后大小为2M,第一次访问页面,20秒才显示出来,这个文件可能一两年才会修改一次,我希望浏览器一直缓存它
第二个js文件,大小为20K,这个文件经常一天要变动几次,我希望浏览器不要缓存它我这样的需求,该怎么实现呢?
解决方案 »
- 警告: SQL Error: 0, SQLState: null,严重: Cannot create PoolableConnectionFactory
- Java问题 请各位大侠看一下啊
- jsp树型结构
- 系统运行一段时间后,登陆系统,出现连接不上数据库的错误
- 如何用Servlet或者jsp输出JavaScript源文件?
- 怎么能通过JSP页面 向数据库里面提交内容啊?
- 那在JavaScript文件中对比文件名是否相同的方法吗,但不区分大小写,是那个方法?和java里面的一样吗?
- 我是从数据库中提取的数据,如何使这个数据显示时的小数位数为2
- 运行struts一定要有xml分析器吗?比如说(Xerces)
- 一个java项目有代码,怎么可以让它运行起来
- (急)ssh将mysql中的数据导出到excel中,并下载到本地。
- JSP 怎么才能得到每个帖子的点击次数啊啊啊~~~~
不过那个20K的js也不算小啊。
如果不想缓存,可以在引用的时候加上一个随机数。<script src="http://wwww.aaa.com/a.js?v=66116165"></script>
—— 要配置 HTTP 头信息,提示浏览器缓存是长效的,常规套路是:
Cache-Control:max-age=多少秒
Last-Modified:设置为文件创建时间(也可以干脆写死)
Expires:设置为当前时间一年后
—— 更好点的套路是用HTTP1.1的新 HTTP 头:
ETag:"文件MD5 或 文件大小"
第二个js文件,大小为20K,这个文件经常一天要变动几次,我希望浏览器不要缓存它
—— 类似上面所说,不过要配置缓存是无效的:
Pragma:No-cache
Cache-Control:no-cache
Expires:-1
配置方法主要两种:
1、写Filter拦截该JS文件请求,然后:
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", -10);
2、借助Apache或其它Web服务器,进行反向代理时增加Header信息。
参考:http://www.jdon.com/40381