1

请考虑下面带有 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 缓存?!

4

0 回答 0