gpt4 book ai didi

jquery - 为什么 jquery GET 没有缓存应有的结果?

转载 作者:行者123 更新时间:2023-12-01 04:21:26 25 4
gpt4 key购买 nike

我正在通过 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

显示内容没有被缓存。它显示 header 在过去的日期到期。但是在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 新手。

最佳答案

您只是错误地解释了控制台的输出:这是来自服务器的响应 header ,它明确告诉客户端不要将该响应存储在缓存中。

如果您希望对其进行缓存,则需要在事务的服务器端进行更改,而不是在客户端。这主要通过发送正确的 header 来完成:提供 future 的到期日期或根本不提供到期日期。并删除那些“缓存” header 。然后,客户端将发送最后一个缓存请求的日期及其下一个请求(在 If-Modified-Since header 中),您只需要确保您的脚本检查自该日期时间以来是否确实进行了修改 - 如果是的话,照常返回内容,否则只响应http状态码 304 未修改。谷歌一下与缓存控制相关的http headers,这个有点棘手。

关于jquery - 为什么 jquery GET 没有缓存应有的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10110296/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com