1

我在我的 PHP 代码中生成一个 JSON 文件(通过运行数据库查询)。这个 JSON 文件是在我的 Javascript 中使用Google 图表工具的数据查询示例下载到客户端的:

function initialize() {
  // Replace the data source URL on next line with your data source URL.
  // Specify that we want to use the XmlHttpRequest object to make the query.
  var opts = {sendMethod: 'xhr'};
  var query = new google.visualization.Query('http://spreadsheets.google.com?key=123AB&...', opts);

  // Optional request to return only column C and the sum of column B, grouped by C members.
  query.setQuery('select C, sum(B) group by C');

  // Send the query with a callback function.
  query.send(handleQueryResponse);
}

function handleQueryResponse(response) {

  if (response.isError()) {
    alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
    return;
  }

  var data = response.getDataTable();
  var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
  chart.draw(data, {width: 400, height: 240, is3D: true});
}

JSON 文件相当大。在 PHP 中压缩 JSONstring 并在 Javascript 中解压缩的最佳方法是什么?

4

2 回答 2

0

@Gavin 在上面的评论中给出了正确答案:
他的回答是:查看 GZIP 压缩您的内容。如果您的服务器设置正确,它可以压缩任何应用程序/json 内容,然后您的浏览器“应该”自动解压缩它。http://bearpanther.com/2012/04/11/gzip-json-generated-on-the-fly

于 2012-10-30T12:12:38.730 回答
0

问题是“如何使用 PHP 压缩 JSON”。答案是使用ob_gzhandler。如果您无权访问服务器配置,请仅使用此方法。

我建议使用以下解决方案,您不必编写任何 PHP 代码并在所有 json 资源上获取 gzip:

更改您的服务器配置以允许协商内容的自动 gzip'ing

阿帕奇.htaccess

`AddOutputFilterByType DEFLATE text/html ... application/json`

Nginx 服务器.conf

gzip             on; // if not already set
gzip_comp_level  9;
gzip_types       application/json;

具有更多 gzip_types 的示例:

gzip_types text/text text/html text/plain text/xml 
           text/css application/x-javascript application/javascript 
           application/json;
于 2014-04-06T12:13:32.940 回答