文本节点的大小是否会影响DOM遍历的速度?

时间:2012-07-11 21:47:01

标签: javascript performance dom

我有一个非常大的单页应用程序,大约800K。大约500K是发送给客户端的数据。我正在考虑在<script>标签中移动一些只是json字符串的元素。

当浏览器遍历DOM时,它是否也会查看<head>标记(在这种情况下没有任何好处),遍历只发生在<body>标记内?

2 个答案:

答案 0 :(得分:1)

使用document.querySelectorAll("some selector example")时,还会考虑头部中的元素。这可以通过使用:

轻松解决
document.body.querySelectorAll("...")

这同样适用于getElementsByTagNamegetElementsByClassNamequerySelector等 但不是getElementById,因为id必须在文档中是唯一的,因此限制上下文是没有意义的。

顺便说一下,Text也是一种节点类型。 <script> ...500kb... </script>生成以下DOM树:

SCRIPT
    #text

答案 1 :(得分:0)

如果可以的话,我会尝试重新构建数据从服务器返回的方式,而不是将内容转移到浏览器可能会或可能不会解析的位置。

或许有一个快速响应,只返回基本信息,然后响应另一个请求更全面的响应。

我还有一个可以创建大量数据的Web服务。 800K 也是我的极限,但我已经使端点更加具体来限制数据。

干杯 格伦