我通过ajax函数获取我的网站子页面。一切都运作良好。但是当我在控制台中检查请求时,我收到以下报告
Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection close
Content-Length 6663
Content-Type text/html
Date Wed, 11 Apr 2012 16:29:51 GMT
Expires Thu, 19 Nov 1981 08:52:00 GMT
Pragma no-cache
Server LiteSpeed
Vary Accept-Encoding, User-Agent
X-Powered-By PHP/5.3.10
显示内容未缓存。它显示过去日期的标头到期日。但是在ajax()的jquery页面中,我读到默认情况下所有的ajax调用都被缓存了。问题是什么?这是我的代码
<script type="text/javascript">
$("#subpage1").click(function() {
$("#wrapper").empty();
$("#wrapper").html('loading');
$.ajax({
url: 'subpage/1.html',
success: function(data) {
$("#wrapper").html(data);
}
});
});
</script>
我是jquery和ajax的新手。
答案 0 :(得分:2)
您只是简单地从控制台解释输出错误:这是来自服务器的响应头,它明确告诉客户端不要将该响应存储在缓存中。
如果要缓存它,则需要在事务的服务器端进行更改,而不是在客户端进行更改。这将主要通过发送正确的标题来完成:提供未来的过期日期或根本不提供。并删除那些&#34;缓存&#34;头。然后,客户端将发送最后一个缓存请求的日期及其下一个请求(在If-Modified-Since标头中),您只需要确保您的脚本检查自该日期时间以来是否确实存在修改 - 如果是,像往常一样返回内容,否则只回复http状态代码304未修改。谷歌关于与缓存控制相关的http标头,这有点棘手。