如果正向解析,为什么要先找到最上层的div,直接找到所有的div不行吗

来源:6-2 CSS的解析原理

慕慕7300641

2018-08-01 11:50

4.如果正向解析,例如「div div p em」,我们首先就要检查当前元素到 html 的整条路径,
找到最上层的 div,再往下找,如果遇到不匹配就必须回到最上层那个 div,
往下再去匹配选择器中的第一个 div,回溯若干次才能确定匹配与否,效率很低。

5.逆向匹配则不同,如果当前的 DOM 元素是 div,而不是 selector 最后的 em,
那只要一步就能排除。只有在匹配时,才会不断向上找父节点进行验证。


正向解析,也可以先找到所有的div,如果不匹配,第一步就可以排除掉不匹配的div,这样子也不用回溯啊

写回答 关注

1回答

  • 慕慕7300641
    2018-08-01 12:02:06

    我知道了,是因为父节点有多个子节点,而子节点只有一个父节点的原因,

    从上往下找必须要遍历真个树才行,而从下往上找,只需要一条线路就 可以,步骤少很多


jQuery源码解析(架构与依赖模块)

由浅入深地剖析jQuery库的设计与实现,揭开框架背后的秘密

84047 学习 · 280 问题

查看课程

相似问题