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