请考虑下面带有struts 2 jquery插件的示例,(但这可能发生在jquery上)
在struts 2中,jquery插件设置head标签来缓存ajax调用:
ajaxcache="true"
html头是(不要缓存任何东西):
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Pragma" content="No-cache" />
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Expires" content="0" />
还有一个拦截器设置谐振头如下:
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control",
"no-cache, no-store, must-revalidate");
response.setDateHeader("Expires", 0);
考虑一个带有单个js的示例test.jsp文件
<script type="text/javascript" src="js/grid.js"></script>
第一次加载test.jsp时,grid.js
被浏览器加载并缓存,更改grid.js
不会导致浏览器更新grid.js
文件!
当然,我可以通过设置ajaxcache="false"
我的问题是,如果grid.js
只加载一次并且客户端不再获得新更新的js,那么ajax缓存的用途是什么?!
你能否提出一个真实案例,你不需要更新客户端上的任何资源,因此客户端可以长时间捕获资源?!
或者我们可以通过其他方式使用ajax缓存?!