2011-04-02 55 views
11

我正在構建一個包含主題的JS腳本,爲了運行多個主題,每個類名都有一個前綴 - 但這會使類名稱有點長。長時間使用CSS類名會對性能產生影響嗎?

我也有CSS規則取決於是否元素有更多的類名以提供特殊效果。

我的問題是,較長的CSS classnames會對性能產生影響,或者只會錯誤/錯誤/低效地使用選擇器會降低性能?

+0

Facebook的類名:'buddyListTypeahead','uiTypeaheadView','UIUpcoming_More','fbPrivacyWidget','fbProfileThumbRemoveX','sideNavSectionContent'等 – 2011-04-02 18:11:19

+0

@ SIME維達斯:是的,但我有CSS規則,如 .wf-default-input-wrapper .wf-default-top-left.wf-default-focus {} 這就像你的例子中的3x多少facebook使用 – Splynx 2011-04-02 18:34:18

回答

16

長類名稱一定會對性能產生影響。首先,會有更多的東西被轉移和解析。他們會有一個可衡量的影響嗎?可能不會。傳輸只發生一次,這要歸功於緩存,並且與例如渲染相比,對分析的影響可能可以忽略不計。

一般來說,如果開始遇到性能問題,您應該只考慮性能優化問題。在優化可能的性能問題之前,最好使用表達性名稱來提高css的可讀性(對於任何類型的代碼都是一樣的)。

對於選擇器,它們可能會對性能產生較大影響,因爲取決於選擇器的複雜性和DOM的大小,可能需要執行相當多的代碼(與長類名相比) 。但是,再次嘗試製作最具可讀性/可理解性的選擇器,並且只有在可衡量的性能影響(可以使用Firebug或Chrome的開發人員工具進行分析)時纔開始優化它。

+8

+ 1提出過早優化 – derekerdmann 2011-04-02 18:18:38

+1

問題是因爲它是其他人使用的插件,我不知道DOM樹有多複雜或多大。 – Splynx 2011-04-02 18:33:31

+0

@Splynx:然後,如果你真的關心性能,試着想出一些合理的假設,任何人使用你的插件的最大複雜度是什麼,然後嘗試模擬這種使用和度量性能。如果表現還行(我很確定),你應該沒問題。爲了安全起見,您還可以使用較舊的計算機和較舊的瀏覽器,並使用較少優化的JavaScript引擎。 – 2011-04-02 18:38:22

2

更長的CSS classnames會對性能產生影響,或者只會錯誤/錯誤/低效地使用選擇器會降低性能?

更長的類名? - 我不認爲它很重要,我更喜歡較短,但有一些應用程序或插件是不可能的 - PageSpeed和Y!Slow,也沒有我訪問過的任何其他性能推薦網站,提及類名的長度是一個問題 - 絕對是更高效的整體選擇,更好的性能

相關問題