我需要通过AJAX检索大量数据(坐标加上额外的值)。数据格式为:
-72.781;;6,-68.811;;8
注意使用了两种不同的分隔符:;;
和,
。
我应该只返回一个分隔的字符串并使用String.split()
(两次),还是最好返回一个JSON字符串并使用JSON.parse()
解压缩我的数据?每种方法的最差和最好是什么?
答案 0 :(得分:6)
即使数据真的很大,它们在现实世界中显着的性能差异的可能性也很低(数据传输时间将超过解码时间)。因此,除了现实世界的性能问题之外,最好从代码清晰度的角度关注最佳效果。
如果数据是同质的(你以相同的方式处理每个坐标),那么String#split
方法没有任何问题。
如果你需要在你的代码中单独引用坐标,那么会有一个参数来为它们分配正确的名称,这建议使用JSON。我倾向于倾向于清晰,所以我可能倾向于JSON。
要考虑的另一件事是电线上的尺寸。如果你只需要支持漂亮的胖网络连接,它可能无关紧要,但由于每个对象都重复了JSON密钥,因此大小可能会明显变大。这可能会争论compressed JSON。
答案 1 :(得分:2)
我已经创建了一个描述您问题的performance test
虽然它取决于浏览器的实现,但在很多情况下 - 结果显示 - split
要快得多,因为JSON.parse
在后台做了很多其他事情,但你需要提供的数据为了便于解析:在测试中,我添加了一个使用split
(在replace
之间)以解析已经格式化的json数组的情况,结果说明了一切。
总而言之,我不会使用速度快几毫秒但 n 秒更难以阅读和维护的脚本。