0

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

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

4

2 回答 2

1

使用时document.querySelectorAll("some selector example"),头部中的元素也会被考虑。这可以通过使用以下方法轻松解决:

document.body.querySelectorAll("...")

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

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

SCRIPT
    #text
于 2012-07-11T21:49:24.650 回答
0

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

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

我也有一个可以创建这么多数据的网络服务。 800K对我来说也是极限,但我已经使端点更加具体以限制该数据。

干杯格伦

于 2012-07-11T21:59:15.037 回答