减少PHP生成json字符串的ajax下载时间


reducing ajax download time of a php generating a json string

我正在使用ajax调用下载一个php文件,从sql查询中生成一个json字符串。

所以很常见,请求是针对这个。php的,在。php中,我将执行查询并将结果作为json编码的字符串回显。

该文件大约850Kb(2500条记录…),因此需要一段时间才能获得它。我在寻找一种减少下载时间的方法。我想激活某种apache压缩,就像css或js,但是:

  • 我不知道在这种情况下这是否是个好主意

  • 不知道确切的htaccess语法和mime类型。我需要压缩json mime还是php mime ?

有人已经解决了这类问题吗?

:)

在将结果输出到ajax脚本之前,您应该尝试使用ob_gzhandler和ob_start。这将压缩你的输出和减少渲染时间。

ob_start("ob_gzhandler");

阅读这里的手册条目:http://php.net/manual/en/function.ob-gzhandler.php

所以我的php代码是
<?php
//get all processing done.assuming $json_result holds output.
ob_start("ob_gzhandler");
echo $json_result;
ob_end_flush();
exit;
?>

确保脚本中没有像自定义标题或任何其他打印文件那样的缓冲区输出。