Jon*_*han 4 javascript json dataset
我正在向客户端传递一个最多1000行的表,其中包括名称,ID,纬度和经度值.
然后,该列表将由Javascript处理并转换为Google地图上的标记.
我最初计划用JSON做这个,因为我希望代码可读且易于处理,并且因为我们可能会随着时间的推移添加更多结构.
但是,我的同事建议将其作为Javascript数组传递,因为它会大大减小大小.
这让我想到,也许JSON有点多余.毕竟,对于定义的每一行,每个字段的名称也是重复输出的.然而,对于阵列,单元的位置用于指示场.
但是,通过使用数组真的会有性能提升吗?
该网站使用GZIP压缩.此压缩是否足以处理JSON字符串中的任何冗余?
[编辑]
我意识到JSON只是一种表示法.
但我真正的问题是 - 表现最好的表现方式是什么?
如果我使用完全命名的属性,那么我可以使用这样的代码:
var x = resultset.rows[0].name;
Run Code Online (Sandbox Code Playgroud)
然而,如果我不这样做,它将看起来不那么可读,如下所示:
var x = resultset.rows[0][2];
Run Code Online (Sandbox Code Playgroud)
我的问题是 - 代码可读性的牺牲是否值得为性能提升?或不?
附加说明:
根据维基百科,Deflate压缩算法(由gzip使用)执行'Duplicate string elimination'.http://en.wikipedia.org/wiki/DEFLATE#Duplicate_string_elimination
如果这是正确的,我没有理由担心JSON中的任何冗余,因为它已经被处理掉了.
JSON只是一种符号(Javascript Object Notation),包括JS数组 - 即使名称中有"object"一词.
在http://json.org/上查看它的语法,它定义了这样的数组(引用):
数组是有序的值集合.数组以
[(左括号)开头,以(右括号)结尾].值以,(逗号)分隔.
这意味着这(取自JSON数据集示例)将是有效的JSON:
[ 100, 500, 300, 200, 400 ]
Run Code Online (Sandbox Code Playgroud)
即使它不包括也不声明任何对象.
在你的情况下,我想你可以使用一些数组,按位置存储数据,而不是按名称存储数据.
如果你担心大小,你可能想要自己"压缩"服务器端的数据,并在客户端解压缩它 - 但我不会这样做:这意味着你需要更多的处理客户端的时间/功率......
我更愿意使用包含数据的页面进行压缩:你将无所事事,它是全自动的,它可以正常工作 - 并且尺寸的差异可能不会引人注意.