更好的加载速度:大型JSON文件,或需要处理的小型CSV文件?

时间:2012-04-05 16:26:31

标签: javascript jquery csv

为了获得最大的加载速度和页面效率,最好是:

  1. 一个18MB的JSON文件,包含一系列字典,我可以加载并开始用作本机JavaScript对象(例如var myname = jsonobj[1]['name'])。
  2. 我需要使用jquery.csv插件读取的4MB CSV文件,然后使用查找来引用:var nameidx = titles.getPos('name'); var myname = jsonobj[1][nameidx])。
  3. 我真的不希望任何人给我一个明确的答案,但一般的怀疑会非常有用。或者如何测量的提示 - 也许我可以使用开发人员工具检查加载速度和效率之间的权衡。

    我怀疑使用(1)中的原生JavaScript对象的任何额外效率都会被CSV文件的小得多的数量所抵消,但我想知道其他人是否也这么认为。

5 个答案:

答案 0 :(得分:4)

您是否考虑过使用gzip提供json内容 - 这是gzip上的一些基准http://www.cowtowncoder.com/blog/archives/2009/05/entry_263.html

答案 1 :(得分:3)

你的情况如何?您是在撰写一些内部网站点,在那里您知道浏览器用户正在使用什么,并且有合理的带宽期望,或者这是一个面向公众的网站?

如果您可以控制人们使用的浏览器,例如因为他们是您的员工,请考虑利用客户端缓存。如果您试图说服人们使用这些数据,您应该考虑将数据分成几块并通过XHR提供。

如果你真的需要一次性服务,那么:

  1. 使用gzip
  2. 您是否正在对客户端的数据进行大量处理?您实际可以通过多少项目?如果您在任何给定的会话中只能访问少于1,000个,那么我将想象 14MB的节省是值得的。另一方面,如果你一直在比较各种事物(因为你正在进行某种可视化或......任何事情),那么我认为JSON会得到回报。
  3. 换句话说:它取决于。基准测试。

答案 2 :(得分:0)

4MB vs 18MB?哪里有问题? Json现在只是标准格式,csv也许同样好,如果你使用它可以。我的意见。

答案 3 :(得分:0)

14Mb的数据是巨大的差异,但我会首先尝试使用GZIP/Deflate服务器端压缩的内容服务,从而对这些请求进行比较(可能CSV请求将再次更好)内容长度)

然后,我还尝试在jsperf上使用CSV和JSON数据创建一些数据操作测试,并使用真实的测试用例/常用用法

答案 4 :(得分:0)

这在很大程度上取决于与用户的连接带宽。

除非这只是与服务器连接速度超快的人使用,否则我会说最好的选择是一个更小的文件,它只包含你需要立即显示的实际信息,然后根据需要加载更多数据。