WebKit瀏覽器具有用於樣式渲染的內置優化技術,「這樣就不必爲頁面上大約60%的元素匹配樣式。」渲染優化和兄弟選擇器
但是,如果優化完全關閉整個頁面「任何兄弟選擇在任何地方樣式...遇到這包括+
選擇和選擇像:first-child
和:last-child
。」
有誰知道禁用此優化的選擇器類型的完整列表?
-
更多信息
優化在大里Garsiel的研究討論了關於瀏覽器內部:How Browsers Work。
這裏有同胞選擇全部引自Dave Hyatt,誰顯然撰寫的瀏覽器代碼:「必須有在使用中根本沒有同胞選擇的WebCore簡單地拋出遇到任何同級選擇當一個全局開關並禁用樣式共享。對於整個文檔,它們包括+選擇器和選擇器,如:first-child和last-child。「
這個報價似乎來自一個文章悅在2005年寫了下面他討論了比較詳細(同一來源前面):
「的WebCore(在即將到來的Safari瀏覽器的版本)有一個非常酷的優化,我想出了甚至不必計算適用於元素的聲明集,實踐中的這種優化結果甚至不必爲頁面上大約60%的元素匹配樣式,優化背後的想法是識別當頁面中的兩個元素將通過DOM(和其他狀態)檢查具有相同樣式時,只要可能就簡單地在這兩個元素之間共享前端樣式信息。「這個article by Nate Koechley更詳細地討論了該算法。他總結了:
「在網絡開發中,通常有6種不同的類似方式來完成同樣的事情,什麼使得優秀的網頁開發人員不斷選擇最好的幾乎不可區分的路徑。更全面地瞭解瀏覽器的內核,並將幫助我們選擇最好的方法。「凱悅還討論了優化這個W3C mailing list archive
它還附帶了簡短從瑞安Kinal一個Stack chat:「哇只是哇我永遠不會再使用其他兄弟選擇。「
我特別想知道:
子選擇是否也關閉優化
三叉戟/ IE是否使用任何類似的優化
是否任何測試都會顯示它對渲染性能有多大的差異
謝謝循環 - 這是很好的信息。如果有人知道在哪裏可以找到它,還是會真的想看到相關的源代碼。 – cantera
@downvoter,怎麼了? –
對不起有人downvoted,我發現你的信息真的很有用。提出了另一個對我有幫助的答案 – cantera