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