JQuery AJAX 使用 PHP 文件进行缓存

9 浏览
0 Comments

JQuery AJAX 使用 PHP 文件进行缓存

我目前正在尝试加快Ajax请求的速度。基本上,该网站通过实时过滤来工作。所以当用户点击表单元素时,数据会相应加载。这一切都工作得非常好,但速度不如我所希望的快。

我的Ajax代码大致如下(我显然省略了变量):

$.ajax({

type: "GET",

url: 'URL名称',

data: {

'变量1': 变量1,

'变量2': 变量2

},

cache: true, // 设置缓存为TRUE

success: function(data) {

$('.内容').html(data);

},

complete: function() {

$("#loading_ajax").hide();

$('.内容').fadeIn();

}

}).error(function(event, jqXHR, ajaxSettings, thrownError) {

$('.内容').html("

无法获取数据

");

// 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

第二张截图显示请求实际上变慢了(我重复了几次以查看缓存是否会改善,但没有任何区别)。有什么想法吗?谢谢。

0
0 Comments

问题出现的原因是服务器端没有启用Gzip压缩,导致文件无法被压缩为更小的大小。解决方法是在服务器的.htaccess文件中添加以下代码:

AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript application/json

这样可以启用Gzip压缩,优化网站加载时间。

0