2013-07-03 41 views
5

設置高度之間。這樣的性能差異:使用Javascript/jQuery的 - 有高度()和.css({ '高度'})

$('element').height(1000); 

而且這樣:

$('element').css({'height': '1000px'}); 

是這兩者之間有什麼樣的性能差異?

它對CSS3轉換的性能有什麼影響嗎?

+0

它至少與CSS3轉換沒有任何關係。這只是一個普通的CSS屬性。 –

+4

'.css()'更快:http://jsperf.com/jquery-css-height-vs-method-height – Joe

+3

任何涉及JavaScript和'哪個更快'的問題* a *或* b * ,可以在[JS Perf](http://jsperf.com/)上自己回答。 –

回答

3

閱讀資料,盧克。

jQuery.prototype.height

//snipped to end: 
return value === undefined ? 
    // Get width or height on the element, requesting but not forcing parseFloat 
    jQuery.css(elem, type, extra) : 

    // Set width or height on the element 
    jQuery.style(elem, type, value, extra); 

jQuery.prototype.css

return value !== undefined ? 
    jQuery.style(elem, name, value) : 
    jQuery.css(elem, name); 

這兩者之間的區別是什麼纔去了匹配的元素做了,而這在.height通過了extra參數。什麼能合理地導致大幅放緩?我沒有真正的想法。也許它與一個js引擎可以在一箇中做的優化有關,而不是另一個。更有可能的是,性能測試不好(正確測試這些東西非常困難)。

但是,這些方法的性能不應該是您最關心的問題。如果確實是一個問題,你可以嘗試通過嘗試這兩種方法來解決問題,並查看哪些方法可以有相當大的改進。正如諺語所說:「不成熟的優化是萬惡之源」。

詮,如果你發現有什麼地方是緩慢的在你的程序,你追查到到.height一個電話,然後就可以看到是否有通過切換到.css的性能差異。