querySelector相较getElement系列。。。为什么会存在性能问题?我看网上没有很好的解答。既然存在性能问题,为什么很多库里面也大量使用该方法?
querySelector相较getElement系列。。。为什么会存在性能问题?我看网上没有很好的解答。既然存在性能问题,为什么很多库里面也大量使用该方法?
感觉应该是 querySelector
支持通用选择器的写法,而 getElemet(s)ByXXX
系列则一开始就限制了能使用的选择器类型,这会导致前者每次都需要完整得解析整个选择器文本(过程中需要检查是否有语法错误)然后再去 DOM 树里找,而后者一开始就知道你给它的选择器文本是不是有效的。
10 回答11.4k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.9k 阅读✓ 已解决
3 回答5.2k 阅读✓ 已解决
1 回答3.5k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
querySelector 选择符选出来的元素及元素数组是静态的,而 getElement 这种方法选出的元素是动态的。
静态的就是说它不会随着 dom 操作而改变,动态的 dom 变了也会跟着变
至于问什么很多库在用,可能是因为方便吧,毕竟 getElement 要选的层级多又是id又是class的,很麻烦,querySelector 的话用css选择器就可以了,到底用哪个看个人选择了