【发布时间】:2015-02-12 10:56:30
【问题描述】:
我无法理解为什么我的 ajax 请求没有被缓存以及如何被缓存。
我在网上阅读了大约 50-60 篇不同的文章,这些文章说这应该可行。
$.ajax({
type: "GET",
cache: true,
url: 'get.php',
});
但是当我查看 firebug 或 developer net 选项卡时。我一直看到该页面正在加载 200 响应代码,这意味着它正在加载一个全新的页面而不是旧的缓存页面。
所以为了让测试更加基础,我添加了一个单独的空白页面,纯粹显示日期时间,以便查看它是否被缓存。
它不起作用,日期时间仍在更新中。
所以接下来我尝试在 get.php 上设置这样的标题:
$cache_length=600;
header('Expires: '.gmdate('D, d M Y H:i:s \G\M\T', time() + 3600));
header("Pragma: cache");
header("Cache-Control: max-age=$cache_length");
header("User-Cache-Control: max-age=$cache_length");
echo date('Y-m-d H:i:s');
仍然没有缓存它。
然后我尝试了这个:
$.ajax({
type: "GET",
cache: true,
url: 'get.php',
});
还是一样的问题,没有缓存发生
然后我也试过了,还是没有缓存
$.ajaxSetup({ 缓存: true }); $.ajax({ 类型:“获取”, 缓存:真, 网址:'get.php', });
然后我尝试了这个,仍然没有缓存
$.ajaxSetup({ cache: true });
$.ajax({
type: "GET",
cache: true,
url: 'get.php',
});
所以我很困惑为什么它不会缓存它,当网上的例子似乎很容易通过指定 cache:true 来缓存它。
无论我尝试什么,我仍然在 get.php 中看到更新的时间,让我相信缓存仍然无法正常工作,但不明白为什么
如何将页面缓存一小时?
【问题讨论】: