Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

关于CSS选择器的效率

  首先是元素属性的访问效率。作为标记语言的时候标签名确实是一个特殊的属性,但是实际上标签名和其它属性在内存中的储存方式是一样的。DOM中他们都是继承自Node。所以访问标签名的效率和访问其它属性的效率也是一样的。
  然后是属性比对。标签名和元素ID都是一个完整的字符串,比对时只需判断字符串相同即可。而类名是多个用空格隔开的字符串,判断类名必须分析这个字符串才能判断,因此类选择器在此处的操作多了一个步骤,效率上输给了标签选择器和ID选择器。不过类选择器是最使用的,一个元素存在多处样式是很正常的,所以类选择器是使用的最广的。而ID选择器由于在JavaScript中它必须唯一(CSS中ID不要求唯一),所以用的比较少。
  由于类选择器是最实用的,现在的浏览器中对类选择器或多或少的都有另外做优化。这样一来,三个基础选择器在效率上就几乎没什么差异了。CSS最影响效率的不是基础选择器,而是复杂的选择器。
  这篇文章之后的部分本来是说后代选择器的,但是由于我的理解是错误的,而且误导性太强,所以暂时删掉了。这部分的内容,以后在讨论CSS引擎算法时再深入研究。
网名:
54.144.24.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^