【问题标题】:CSS Attribute Selcetor - Which one is faster?CSS 属性选择器 - 哪个更快?
【发布时间】:2013-03-02 05:03:33
【问题描述】:

在性能方面首选哪一个?

a[href*="op.ExtSite.com/p"]

a[href*="shop.ExtSite.com/page"]

a[href^="http://shop.ExtSite.com/page"]

a[href^="http://shop.ExtSite.com/page"][href$=".html"]

更新

最后一个选择器应该写成如下:

a[href^="http://shop.E"][href$=".html"]

另外,关于这个多重选择器,我想知道先检查哪个条件,左边的还是右边的?

【问题讨论】:

  • 请不要花时间担心不同 CSS 选择器之间的微小性能差异。如果您真的想提高网站的性能,请使用分析器并找到您自己的代码运行缓慢的地方。担心单个 CSS 选择器的性能是浏览器制造商的工作,而不是网站设计人员。
  • @Spudley:我很高兴了解更多关于“分析”的信息。
  • 对于浏览器上的前端代码,现代浏览器内置了分析工具;查看开发工具选项(在大多数浏览器中按 F12)。也可以试试YSlow 工具。如果您编写了服务器端代码,也应该对其进行分析,但使用的工具将根据您编写代码的语言而有所不同。对于大多数网站,真正的性能瓶颈将在服务器端,通常使用缓慢的复杂数据库查询之类的东西。性能调优就是先优化大事。
  • 另外,花时间尝试修复小问题:这通常被称为“过早优化”。如果你用谷歌搜索那个短语,你会得到更多关于为什么它被认为是坏事的信息。这是一个很好的链接:programmers.stackexchange.com/questions/80084/…
  • “Profiling”通常是用来衡量你的代码性能的词,以找到它慢的地方。然后,您可以使用该信息来帮助您决定最有效地利用您的时间来加快速度。见en.wikipedia.org/wiki/Profiling_%28computer_programming%29

标签: css performance css-selectors


【解决方案1】:

我的猜测是这个

a[href^="http://shop.ExtSite.com/page"] 

a[href^="http://shop.ExtSite.com/page"][href$=".html"] 

因为它从字符串的第一个开始查找,所以所有开头没有h 的链接都将被避免。

更新 如果您需要检查完整模式,请使用我在下面提到的模式:

a[href^="http://shop.ExtSite.com/page.html"]

【讨论】:

  • 最后一个不可能是最快的,因为它包含一个额外的检查。
  • 请看我的更新。另外,我想匹配的链接就像http://shop.ExtSite.com/page/.../something.html
猜你喜欢
  • 2015-10-18
  • 2012-09-11
  • 2010-10-09
  • 2011-03-12
  • 2016-01-13
  • 2013-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多