Javascript 为什么Google Lighthouse在计算DOM大小时不计算所有DOM元素

Javascript 为什么Google Lighthouse在计算DOM大小时不计算所有DOM元素,javascript,dom,lighthouse,Javascript,Dom,Lighthouse,我正在研究缩小网站DOM的大小。 当我在页面上运行Lighthouse时,DOM正确地突出显示为过量的is 1824元素。 然后,当我进入控制台并运行一个小脚本document.getElementsByTagName('*')时,它返回的HTMLCollection(2212)[HTML,…]稍高一些。 我想是吧 这两个结果中的一个是不正确的-在这种情况下,哪一个 灯塔将某些元素排除在其计数之外-在这种情况下是什么 还有别的 有人对此有什么见解吗?谷歌灯塔只计算中的DOM元素 docume

我正在研究缩小网站DOM的大小。 当我在页面上运行Lighthouse时,DOM正确地突出显示为过量的is 1824元素。 然后,当我进入控制台并运行一个小脚本
document.getElementsByTagName('*')
时,它返回的
HTMLCollection(2212)[HTML,…]
稍高一些。 我想是吧

  • 这两个结果中的一个是不正确的-在这种情况下,哪一个
  • 灯塔将某些元素排除在其计数之外-在这种情况下是什么
  • 还有别的

有人对此有什么见解吗?

谷歌灯塔只计算
中的DOM元素


document.getElementsByTagName('*')
返回DOM元素,包括

感谢Dan,我确实想到了这一点,所以我也运行了
$('body*')仍然超过2000。因此,这让我想到,一旦DOM加载,Lighthouse总数就停止计数,加载之后可能加载的任何东西都不包括在总数中,而在控制台中进行摆弄可能会得到这个值。这听起来可行吗?Lighthouse会加载多个页面来进行分析。我能够在我的一个网站的几个不同页面上重现结果。一种是相当静态的,另一种是动态的,在页面加载后可以很好地加载东西。只要我使用
queryselectoral(“body*”)
,它看起来是一致的。我还没有用jQuery测试它是否返回相同的结果。querySelectorAll返回与jQuery等价的结果相同的结果-我很懒。看来我的主要分歧在于手机和桌面的区别。我没有考虑灯塔的背景。他们仍然不太匹配,但更接近