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