【发布时间】:2009-09-22 05:42:07
【问题描述】:
我正在向客户端传递一个最多包含 1000 行的表,其中包含名称、ID、纬度和经度值。
然后该列表将由 Javascript 处理并转换为 Google 地图上的标记。
我最初计划使用 JSON 来实现这一点,因为我希望代码可读且易于处理,并且随着时间的推移我们可能会为其添加更多结构。
但是,我的同事建议将其作为 Javascript 数组传递下来,因为它会大大减小大小。
这让我想到,也许 JSON 有点多余。毕竟,对于定义的每一行,每个字段的名称也是重复输出的。而对于数组,单元格的位置用于指示字段。
但是,使用数组真的会提高性能吗?
该网站使用 GZIP 压缩。这种压缩是否足够有效以处理在 JSON 字符串中发现的任何冗余?
[编辑]
我意识到 JSON 只是一种符号。
但我真正的问题是 - 在性能方面,哪种表示法最好?
如果我使用完全命名的属性,那么我可以有这样的代码:
var x = resultset.rows[0].name;
如果我不这样做,它的可读性会降低,如下所示:
var x = resultset.rows[0][2];
我的问题是——为了性能提升而牺牲代码可读性是否值得?还是不行?
补充说明:
根据 Wikipedia,Deflate 压缩算法(由 gzip 使用)执行“重复字符串消除”。 http://en.wikipedia.org/wiki/DEFLATE#Duplicate_string_elimination
如果这是正确的,我没有理由担心 JSON 中的任何冗余,因为它已经被处理了。
【问题讨论】:
-
压缩并没有完全消除重复的字符串,它只是有效地表示它。如果从一开始就没有重复的字符串,它仍然会更小。
标签: javascript json dataset