我有一个非常大的单页应用程序,大约800K。大约500K是发送给客户端的数据。我正在考虑在<script>
标签中移动一些只是json字符串的元素。
当浏览器遍历DOM时,它是否也会查看<head>
标记(在这种情况下没有任何好处),遍历只发生在<body>
标记内?
答案 0 :(得分:1)
使用document.querySelectorAll("some selector example")
时,还会考虑头部中的元素。这可以通过使用:
document.body.querySelectorAll("...")
这同样适用于getElementsByTagName
,getElementsByClassName
,querySelector
等
但不是getElementById
,因为id必须在文档中是唯一的,因此限制上下文是没有意义的。
顺便说一下,Text也是一种节点类型。 <script> ...500kb... </script>
生成以下DOM树:
SCRIPT
#text
答案 1 :(得分:0)
如果可以的话,我会尝试重新构建数据从服务器返回的方式,而不是将内容转移到浏览器可能会或可能不会解析的位置。
或许有一个快速响应,只返回基本信息,然后响应另一个请求更全面的响应。
我还有一个可以创建大量数据的Web服务。 800K 也是我的极限,但我已经使端点更加具体来限制数据。
干杯 格伦