Javascript 文本节点的大小是否会影响DOM遍历的速度?
我有一个相当大的单页应用程序,大约800K。大约500K是发送到客户机的数据。我正在考虑在Javascript 文本节点的大小是否会影响DOM遍历的速度?,javascript,performance,dom,Javascript,Performance,Dom,我有一个相当大的单页应用程序,大约800K。大约500K是发送到客户机的数据。我正在考虑在标记的头部移动一些只是json字符串的元素 当浏览器遍历DOM时,它是否也会查看标记(在这种情况下没有好处)遍历是否只发生在标记内部?当使用文档时。querySelectorAll(“某些选择器示例”)也会考虑头部的元素。这可以通过使用以下方法轻松解决: document.body.querySelectorAll("...") 这同样适用于getElementsByTagName,getElements
标记的头部移动一些只是json字符串的元素
当浏览器遍历DOM时,它是否也会查看
标记(在这种情况下没有好处)遍历是否只发生在
标记内部?当使用文档时。querySelectorAll(“某些选择器示例”)
也会考虑头部的元素。这可以通过使用以下方法轻松解决:
document.body.querySelectorAll("...")
这同样适用于getElementsByTagName
,getElementsByClassName
,querySelector
等但是不要使用
getElementById
,因为id在文档中必须是唯一的,所以限制上下文是没有意义的
顺便说一下,文本也是一种节点类型<代码>500kb代码>生成以下DOM树:
SCRIPT
#text
如果可以的话,我会尝试重新构造数据从服务器返回的方式,而不是将内容转移到浏览器可能解析或可能无法解析的位置 也许有一个只返回基本信息的快速响应,然后对另一个请求有一个更完整的响应 我也有一个web服务,可以创建大量的数据800K对我来说也是一个限制,但我已经将端点设置得更具体一些,以限制该数据 干杯
格伦那么元素是在头部还是在身体里没有区别?@frenchie不,这不重要。当放在头部时,页面看起来“可用”可能需要更多的时间。如果放在正文中,浏览器将能够处理一些已经加载的内容。@frenchie顺便说一句,这是一个JSPerf。它没有显示出显著的性能差异:在遍历DOM时,脚本/div/which标记中的文本大小无关紧要(例如,通过应用选择器查询)。这是一个文档对象模型,您不需要进行字符串搜索:-)@Bergi,想象一下大约5000个div,其中一些具有10个层次结构,正在被遍历和修改。您说您的数据主要是JSON字符串,而不是一个复杂的页面?两者都有:大量JSON数据和大量div,大部分是在运行时创建的为什么有包含JSON内容的div?我想他们根本不会被展示。您不应该有一个包含数据的大JSON文件,然后在运行时创建一个独立的可视化吗?