6

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

-72.781;;6,-68.811;;8

请注意,使用了两个不同的分隔符:;;,.

我应该只返回一个分隔字符串并使用String.split()(两次)还是返回一个 JSON 字符串并用于JSON.parse()解压缩我的数据更好?每种方法最差和最好的是什么?

4

2 回答 2

8

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

如果数据是同质的(您处理每个坐标的方式大致相同),那么该String#split方法没有任何问题。

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

要考虑的另一件事是电线上的尺寸。如果您只需要支持良好的胖网络连接,那可能无关紧要,但因为每个对象都重复了 JSON 键,所以大小可能会明显更大。这可能会争论压缩 JSON

于 2013-03-25T13:10:30.753 回答
2

我创建了一个描述您的问题的性能测试。
虽然它取决于浏览器的实现,但在许多情况下——如结果所示——split会快得多,因为JSON.parse在后台做了很多其他事情,但你需要提供数据以便于解析:在测试中我已经添加了一个案例,您使用split(among replace) 来解析已经格式化的 json 数组,结果不言而喻。

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

于 2013-03-25T13:29:36.407 回答