搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
Monodyee
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
brup工具如果抓包出现中文乱码怎么办_burp中文乱码
2
Android Studio 常用配置_androidstudio keymap 默认配置
3
数据结构(七)---树
4
突破面试八股文,Android Framework框架层如何学习?_安卓开发八股
5
STM32F - 深入解析
6
Offset Explorer(Kafka消息可视化工具)报invalid hex digit ‘{‘错误解决方法
7
Git - 底层原理_turn off this advice by setting config variable ad
8
效率翻倍!2024年办公必备的6款AI生成PPT软件,每一款都亲测好用!_2024有没有上传图片 生成ppt的ai
9
LeetCode 202. 快乐数(HashSet或双指针)_happy number 双指针
10
人工智能 AI项目 ROUGE评估算法简记_rougel
当前位置:
article
> 正文
css css选择器的解析是从右往左的_span 从右向左
作者:Monodyee | 2024-04-16 06:17:35
赞
踩
span 从右向左
为什么从右往左的解析方法效率更高呢
如图:
假如 DOM 的结构如上图,匹配规则是 .mod-nav h3 span。
若从左向右的匹配,过程是:从 .mod-nav 开始,遍历子节点 header 和子节点 div,然后各自向子节点遍历。在右侧 div 的分支中,最后遍历到叶子节点 a ,发现不符合规则,需要回溯到 ul 节点,再遍历下一个 li-a,假如有 1000 个 li,则这 1000 次的遍历与回溯会损失很多性能。
再看看从右至左的匹配:先找到所有的最右节点 span,对于每一个 span,向上寻找节点 h3,由 h3再向上寻找 class=“mod-nav” 的节点,最后找到根元素 html 则结束这个分支的遍历。
很明显,两种匹配规则的性能差别很大。之所以会差别很大,是因为
从右向左的匹配在第一步就筛选掉了大量的不符合条件的最右节点(叶子节点)
;而
从左向右的匹配规则的性能都浪费在了失败的查找上面
。
当然这是比较明显情况,如果在叶子上存在多个不符合条件的 span,从右向左的规则也会走一些弯路(这时就需要优化 CSS 选择器了)。但平均来说它还是更高效,因为
大多时候,一个 DOM 树中,符合匹配条件的节点(如 .mod-nav h3 span)远少于不符合条件的节点。
本文内容由网友自发贡献,转载请注明出处:
https://www.wpsshop.cn/w/Monodyee/article/detail/432761
推荐阅读
article
IDM
添加
到谷歌浏览器一直显示
:
无法
从该网站
添加
应用、
扩展
程序
和用户脚本_
idm
无法
从该网站
添加
扩...
下载
IDM
插件
:
IDM
6.40.2 最快下载软件 - 老殁 - 殁漂遥1.情景展示在安装chrome离线
扩展
程序
时,报...
赞
踩
article
Android
Studio
实现简单
计算器
App
_用
app
制作
一个
计算器
...
在本文中,我将向您展示如何使用
Android
Studio
创建
一个
简单的
计算器
应用程序。这个应用程序将具有基本的算术运算...
赞
踩
article
Redis
下载安装
与配置...
一、
Redis
简介官方文档:瑞迪斯简介 |雷迪斯 (redis.io)
Redis
是一个开源(BSD 许可)内存数据结构...
赞
踩
article
JsonHandle
工具使用_
json
handle
...
JSON Handle工具安装与使用_
json
handle
json
handle
...
赞
踩
article
华为
模拟器
BUG解决参考方案_
ensp
bug
...
解决
华为
模拟器
出现故障的方法建议_
ensp
bug
ensp
bug
一名大四学姐的亲身体验,专业...
赞
踩
article
学会使用
Android
Studio
网格
布局
制作
计算器
界面_
android
studio
计算器
布局
...
一、网格
布局
的介绍1.1GridLayout
布局
使用虚细线将
布局
划分为行、列和单元格,也支持一个控件在行、列上都有交错排...
赞
踩
article
python123
题目——
猴子
吃桃
_
python123
猴子
吃桃
问题...
猴子
吃桃
类型:函数。
_
python123
猴子
吃桃
问题
python123
猴子
吃桃
问题
猴子
吃桃
类...
赞
踩
article
Linux
命令
-
arping
命令
(通过发送
ARP
协议报文测试网络)_
linux
arping
...
arping
命令
是用于发送arp请求到一个相邻主机的工具,
arping
使用arp数据包,通过ping
命令
检查设备上的硬...
赞
踩
article
基于
flask
框架爱
学习
分享
平台
(
python
+mysql+论文)_基于
flask
的
学习
助手...
爱
学习
分享
平台
的建设将有助于提高
学习
资源的利用效率,降低
学习
成本。总之,爱
学习
分享
平台
的建设将为
学习
者提供一个便捷、高效...
赞
踩
article
Scrapy
-
Redis
创建
分布式
爬虫
_编写scripy-
redis
爬虫
...
Scrapy
-
Redis
分布式
爬虫
组件
Scrapy
是一个框架,他本身是不支持
分布式
的。如果我们想要做
分布式
的
爬虫
,就需要...
赞
踩
article
推荐两款
开源
的
绘制
流程图
软件
_推荐一个
c#
流程图
开源
软件
...
目前
流程图
绘制
软件
非常多,包括本机安装的、web端的都有,如Visio、Graphviz、processOn等等。但是几...
赞
踩
article
阿里
外
包
java
程序员
分享,看完你还会去
外
包
吗?_阿里最大
的
程序员
外
包
...
本文完全是我自己对软件
外
包
认识,可以说是个“议论文”,请大家看
的
时候可以从自己
的
角度出发,来感受这篇文章里面所涉及
的
内容...
赞
踩
article
星光/宝骏/缤果/长安
车机
CarPlay
手机
操作破解教程V2.0版本(无需
笔记本
、
无需
笔记本
、
无需...
之前写了个1.0版本,由于太局限,需要用到
笔记本
才能操作,很多车友反馈不方便。特此出个
手机
版教程,简单easy,妈妈再也...
赞
踩
article
专升本-
云
计算
...
3.
云
安全:通过网上的大量客户端对互联网中软件行为的异常进行检测,获取互联网中木马,恶意程序的最新信息,传送到服务器进行...
赞
踩
article
ensp
ACL
访问控制
列表配置_
ensp
访问控制
列表配置...
访问控制
列表(
ACL
)是一种基于包过滤的
访问控制
技术,它可以根据设定的条件对接口上的数据包进行过滤,允许其通过或丢弃。访...
赞
踩
article
不愧是
GitHub
上
标星
120K
的
Java
手册
,
内容不多
,
只讲重点_
标星
120k
主页...
今天日常摸鱼
的
时候在
GitHub
上发现了这份
标星
120K
的
Java
手册(现已
标星
129k)
,
里面涵盖了 J...
赞
踩
article
如何
在
CentOS
本地
搭建
Spug
平台结合内
网
穿透实现
远程管理
运维
...
Spug
面向中小型企业设计的轻量级无 Agent 的自动化
运维
平台,整合了主机管理、主机批量执行、主机
在
线终端、文件
在
线...
赞
踩
article
基于
HttpRunner
+
Django
+ Vue +
Element
UI 的接口自动化测试...
基于
HttpRunner
+
Django
+ Vue +
Element
UI 的接口自动化测试平台,生产可用。花菜。...
赞
踩
article
linux
下
github
和
huggingface
无法访问
怎么办_
huggingface
打不开...
原始
github
网址。_
huggingface
打不开
huggingface
打不开 ...
赞
踩
article
千兆
以太网
MII
接口
类型_
接口
信号
及时序介绍_千兆网
数据
时序...
TBI即Ten Bit Interface的意思,
接口
数据
位宽由G
MII
接口
的8位增加到10位,其实,TBI
接口
跟GMI...
赞
踩
相关标签
chrome
前端
webview
android studio
gitee
android
redis
数据库
缓存
华为
ide
python
网络
linux
运维
flask
学习
分布式爬虫
Scrapy-Redis
架构
编辑器
设计语言
信息可视化
Java
程序员