javascript匹配语句中冗长的后代选择器的效率?

时间:2019-06-26 06:26:02

标签: javascript css css-selectors

对于连接到父容器上的侦听器的事件处理程序,鼠标滚轮事件使用matches传递给正确的函数,如下所示:

if ( evt.target.matches( 'table.media.album > tbody > tr:first-child > td:nth-child(3) > div:nth-child(2)[data-sb="t"] > div:nth-child(2), table.media.album > tbody > tr:first-child > td:nth-child(3) > div:nth-child(2)[data-sb="t"] > div:nth-child(2) *' ) ) { wheel_handler(); }

我的问题是,以这种方式使用后代选择器是否会对浏览器产生更多或更少的工作?如果将一个类别分配给具有数据属性'sb'的除法元素,则可以排除其左侧的选择器文本,则代码将更少。但是降低的准确性会导致更多的浏览器搜索吗?两种方式的执行速度对我来说都足够快,但我很好奇,知道提供尽可能直接的路径是否会使浏览器的工作量减少。这些节点由用户添加;因此,目前尚不清楚每种类型将有多少种,以及dataset.sb何时等于“ t”。

我在此处阅读了有关选择器的一些信息,但这是特定于页面加载速度而不是“事件处理程序”速度的信息。

我意识到CSS选择器有很多不同的偏好,它们使更新更容易并且代码更易读。但是我只对最有效的东西感兴趣。

感谢您考虑我的问题。

0 个答案:

没有答案