以下兩行之間是否存在速度/效率差異?使用「:not」和「.not()」選擇器之間的性能差異?
$("table td:not(:first-child)")
和
$("table td").not(":first-child")
我認爲第一個會更好,因爲它是刪除對象,但有一個實際的差異,是它巨大的。
謝謝
以下兩行之間是否存在速度/效率差異?使用「:not」和「.not()」選擇器之間的性能差異?
$("table td:not(:first-child)")
和
$("table td").not(":first-child")
我認爲第一個會更好,因爲它是刪除對象,但有一個實際的差異,是它巨大的。
謝謝
從jsperf測試中可以看出,:not
平均快一倍。總的來說,雖然這個性能可能只是整個執行時間的一小部分。
jQuery的文檔狀態:
的。不是()方法將結束爲您提供比推複雜的選擇或變量成更可讀 選擇:不() 選擇濾波器。在大多數情況下,這是一個更好的選擇。
所以真的是由你來決定是否你獲得的秒的分數超過了可讀性。
取決於瀏覽器。
瀏覽器支持querySelectorAll
將獲得與性能的提升...
$("table td:not(:first-child)")
...因爲它是一個有效的選擇。舊版瀏覽器(IE7及更低版本)不會。
雖然你需要小心:not()
選擇器。 jQuery(Sizzle)使用非標準選擇器擴展它,因此很容易中斷qSA
。
您是否嘗試過測量它? – 2012-01-13 04:09:42
http://jsperf.com/jquery-css3-not-vs-not – 2012-01-13 04:10:40
這可能更多我的問題我不確定如何準確測量它。我會認爲一個較小的頁面不會有問題,但它在什麼時候會產生不同? – kwelch 2012-01-13 04:11:03