我目前正在編寫有關webperformance的bachelorthesis,並且遇到了一些我沒想到的結果。jquery類選擇器vs合格的類選擇器
由於Paul Irish或jquery本身建議最好從id下降。
http://learn.jquery.com/performance/optimize-selectors/
所以我本來期望的是$(」一流 ')應該慢於$(' #ID級別 ')或$(' #ID ')。找到(' 一流) 。
我測試jsperf來到了一個漂亮的野趣結果:
Results http://fs1.directupload.net/images/141230/5euuefin.png
好像它真的取決於瀏覽器,但我真的沒想到$ ('.class')的表現非常好,特別是在Chrome上,它比從ID中下降的人快得多。
對我來說有意義的是下面的解釋,但爲什麼這些瀏覽器的差別如此之大。發動機如此不同?
的區別使用單一類或ID查找,getElementsByClassName方法和的getElementById可以使用其比querySelector方式更快時是。你會發現它在現代瀏覽器中快10倍。
來源:http://jsperf.com/jquery-class-vs-tag-qualfied-class-selector/38
那麼什麼是對你的看法?
那(強烈)表明,現代瀏覽器還緩存類的條目(以及自己平時的快ID查找表)。任何額外的代碼開銷(添加一個id搜索)會減慢它的速度。很高興知道。 –
針對下面唯一真實的問題添加了一個答案,因爲您已經公開了一條非常有用的信息。 +1 :) –