使用PHP文件实现JQuery AJAX缓存

3
我目前正在尝试加快ajax请求的速度。基本上,该网站通过实时过滤来工作。因此,当用户单击表单元素时,数据将相应加载。这一切都非常出色,但我希望它能更快。

我的AJAX代码大致如下(我已经省略了变量):

$.ajax({
        type: "GET",
        url: 'URL NAME',
        data: {
            'Var1': Var1,
            'Var2': Var2
        },
        cache:true, // Set cache to TRUE
        success: function(data) {
            $('.content').html(data);
        },
        complete: function () {
            $("#loading_ajax").hide();
            $('.content').fadeIn();
        }   
    }).error(function (event, jqXHR, ajaxSettings, thrownError) {
        $('.content').html("<h2>Could not retrieve data</h2>");
        //alert('[event.status:' + event.status + '], [event:' + event + '], [jqXHR:' + jqXHR + '], [ajaxSettings:' + ajaxSettings + '], [thrownError:' + thrownError + '])');
});

在获取数据的另一端,PHP 的第一行代码如下:
$seconds = 86400;

header("Cache-Control: private, max-age=$seconds");
header("Expires: ".gmdate('r', time()+$seconds));

我随后进入了Firebug检查缓存,但似乎根本没有起作用。 Firebug打印出以下内容:
第一张截图: First Firebug Image 第二张截图: Second Firebug Image 第三张截图: enter image description here 第二张截图显示请求实际上变慢了(我重复了多次,以查看缓存是否会改善它,但是结果并没有改善)。有什么想法吗?谢谢。

你能否也发布请求头? - Kent Pawar
确保从服务器发送的标头能够到达客户端,例如它们不会在代码中被覆盖或者被代理(如果有)覆盖。 - Stan
嘿,你找出为什么header("Cache-Control: private, max-age=$seconds")没有被设置吗?看起来你的主机正在覆盖这些设置以确保安全和节省带宽。http://palizine.plynt.com/issues/2008Jul/cache-control-attributes/ - Kent Pawar
嗨@KentPawar-我还没有找到。我想在服务器上挖掘一下。谢谢-当我找到答案时,我会在这里回复消息。 - 30secondstosam
很好。祝你好运。通常情况下,如果您的网站托管在提供商上,您可以直接发送邮件给系统管理员支持。 - Kent Pawar
显示剩余4条评论
1个回答

0
通过将文件压缩为较小的大小来优化您的网站加载时间。
将此添加到您的 .htaccess 文件中。
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript application/json

很遗憾,这根本没有任何区别。 - 30secondstosam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接