3

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

  1. 一个 18MB 的 JSON 文件,包含一个字典数组,我可以加载并开始使用它作为原生 JavaScript 对象(例如var myname = jsonobj[1]['name'])。
  2. 一个 4MB 的 CSV 文件,我需要使用 jquery.csv 插件读取它,然后使用查找来引用:)var nameidx = titles.getPos('name'); var myname = jsonobj[1][nameidx]

我真的不希望有人给我一个明确的答案,但一般的怀疑会非常有用。或者关于如何测量的提示——也许我可以使用开发者工具检查加载速度和效率之间的权衡。

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

4

5 回答 5

5

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

于 2012-04-05T16:30:21.133 回答
3

你的情况如何?您是否正在编写一些您知道用户正在使用哪些浏览器并且对带宽有合理期望的 Intranet 站点,或者这是一个面向公众的站点?

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

如果您真的需要一次提供所有服务,那么:

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

换句话说:这取决于。对其进行基准测试。

于 2012-04-05T16:39:08.510 回答
0

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

于 2012-04-05T16:29:47.810 回答
0

14Mb 的数据是一个巨大的差异,但我会首先尝试通过GZIP/Deflate服务器端压缩来提供内容,因此,对这些请求进行比较(可能 CSV 请求的内容长度会更好)

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

于 2012-04-05T16:30:16.560 回答
0

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

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

于 2012-04-05T16:37:04.337 回答