JSON与大型JS数组对比

5

我正在制作一个jQuery自动完成功能,其中有10~20k个记录。

这些数据是静态的(当需要时会运行更新脚本),我可以选择从JSON获取文件或将其嵌入到页面中的单行中,例如:

var title = ["example title 1","example title 2"];

就性能而言,我该选择哪一个?(我还担心会导致浏览器崩溃/延迟)..XML呢?

顺便说一句,我的PHP脚本已经使用了HTML缓存系统。


数据大小是多少KB? - Anurag
小于500kb,我认为它永远不会超过1mb。 - Checksummmmm
3个回答

2
您应该将数组放在一个单独的 .js 文件中,并通过 <script> 加载它。这样可以让浏览器将它与您的HTML页面分开缓存(该页面可能更频繁地发生变化)。

2
你应该考虑使用JSON来获取数据,而不是使用AJAX。这样可以让你的页面看起来加载得更快。如果系统支持,你可以使用WebWorkers在单独的线程中解析JSON数据,这将是理想的选择。
500kb的JSON数据通常不会导致任何显著的解析开销,所以我不会担心会崩溃任何人的浏览器。

1

从性能角度来看,数组是更好的选择。尽管JSON是JavaScript的自然格式,但是从JSON实例化对象比创建字符串数组要慢。此外,它还更小,你会体验到网络传输更快。


3
这并不是真的。使用 JSON.parse 方法解析的 JSON 理论上应该更快,因为它不是使用常规的 JS 分词器解析的。由于 JSON 是 ECMAScript 的一个严格子集,因此可能的标记较少,这使其比普通嵌入式 JS 更好。 - mattbasta

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接