d3.json()加载大文件

时间:2018-10-18 03:43:20

标签: json performance d3.js compression

我有一个96mb的.json文件

  • 已被过滤为仅所需内容
  • 没有索引
  • 已尽可能创建二进制文件

文件需要一次全部提供,以便从头开始计算摘要统计信息。

网站:https://3milychu.github.io/met-erials/

如何提高性能和速度和/或将.json文件转换为可在javascript中从客户端读取的压缩文件?

1 个答案:

答案 0 :(得分:2)

大多数访问者不会在页面上徘徊-我以为演示是在我初次访问该站点时被破坏的。一些想法:

  • JSON不是紧凑的数据格式,因为标记名称在每个数据中都会重复。 CSV / TSV在这方面要好得多,因为标头仅出现一次,位于文件的顶部。

  • 另一方面,重复数据压缩得很好,因此您可以将服务器设置为压缩JSON数据(例如,使用mod_deflate on Apachecompression on nginx)并将其用作压缩文件将会由用户的浏览器解压缩。您可以尝试查看哪种文件格式和压缩组合最有效。

  • 是否需要在每次页面加载时计算汇总统计信息 ?过去使用庞大的数据集时,摘要数据是由日常cron作业生成的,因此用户不必等待查询执行。从用户反馈以及我自己作为用户的经验来看,摘要统计信息只是令人感兴趣,与不提供摘要统计信息或发送统计信息相比,让用户等待界面加载可能会使您损失更多的用户非常过时。

  • 根据界面/应用的结构,将大型文件分为每种类别/材料类型的片段,然后按需加载类别,而不是让用户等待全部下载。

还有许多其他方法可以改善页面的加载时间和(感知)性能-例如将您的CSS和JS文件捆绑在一起,然后将它们分别作为一个文件提供;考虑使用图像精灵来减少页面发出的单独请求的数量;尽可能压缩您的资源;将JS加载移出文档的头部和HTML页面的底部,以免阻止页面内容的加载;根据需要延迟加载JS库;等,等等。