JavaScript 中分割分隔字符串与 JSON 解析效率

问题描述 投票:0回答:2

我需要通过AJAX检索大量数据(坐标加上额外的值)。数据格式为:

-72.781;;6,-68.811;;8

请注意,使用了两种不同的分隔符:

;;
,

我应该返回一个分隔字符串并使用

String.split()
(两次)还是返回 JSON 字符串并使用
JSON.parse()
来解压我的数据更好?每种方法最差和最好的是什么?

javascript json performance split string-parsing
2个回答
7
投票

即使数据确实很大,它们在现实世界中出现明显性能差异的可能性也很低(数据传输时间将超过解码时间)。因此,除非出现现实世界的性能问题,否则最好从代码清晰度的角度关注最好的事情。

如果数据是同质的(您以大致相同的方式处理每个坐标),那么

String#split
方法没有任何问题。

如果您需要在代码中单独引用坐标,则会有一个参数用于为它们分配正确的名称,这建议使用 JSON。我倾向于清晰,所以我可能会倾向于 JSON。

另一件事要考虑的是电线的尺寸。如果您只需要支持良好的胖网络连接,这可能并不重要,但由于每个对象都会重复 JSON 键,因此大小可能会明显更大。这可能会支持压缩 JSON


2
投票

我创建了一个描述您问题的性能测试
尽管这取决于浏览器实现,但在许多情况下 - 正如结果所示 -

split
会快得多,因为
JSON.parse
在后台执行许多其他操作,但您需要提供数据以便于解析:在测试中,我添加了一个案例,您使用
split
(在
replace
中)来解析已经格式化的 json 数组,结果不言而喻。

总而言之,我不会选择速度快几毫秒但难以阅读和维护 n 秒的脚本。

© www.soinside.com 2019 - 2024. All rights reserved.