優化瀏覽器渲染 避免CSS expressions

2022-09-25 14:21:12 字數 1188 閱讀 5340

概述

css表示式會降低瀏覽器的渲染效能;用其他方案替換它們將會改善ie瀏覽器的渲染效能。

注意:本節最佳實踐只適用於internet explorer 5到7,它們支援css表示式。internet explorer 8放棄使用css表示式,而其他瀏覽器是不支援的。

詳細資訊

作為一種動態改變文件屬性來響應各種事件的的手段,internet explorer 5引入了css表示式或 「動態屬性」。它們由在css宣告中的css屬性值裡嵌入j**ascript表示式構成。在大多數情況下,它們用於以下目的:

模擬其他瀏覽器支援但ie瀏覽器尚未支援的標準css屬性。

使用比編寫全面j**ascript注入式樣式更小巧,更便捷的方法,來提供動態樣式和高階的事件處理。

不幸的是,css表示式對於效能的不良影響是相當大的,因為每當有事件觸發,瀏覽器都要重新計算每個表示式,如乙個視窗改變大小,滑鼠移動等。css表示式的低效能表現是ie 8棄用它們的原因之一。如果你在網頁裡使用css表示式,應該盡一切努力www.cppcns.com來消除它們並且使用其他方法來達到同樣的功能。

建議盡可能使用標準的css屬性。

ie 8已高度相容標準css;ie 8只有在「相容」模式才支援執行css表示式,而在「標準」模式下則不支援。如果你不需要向後相容舊版本的ie,你應該轉換成標準的css屬性來替換所有對應的css表示式。如需css屬性和支援它們的ie版本的完整列表,請參見msdn的css屬性索引。如果你確實需要支援所需css屬性不可用的舊版本ie瀏覽器,請使用j**ascript來實現等效的功能。

使用j**ascript指令碼樣式。

如果你正在使用css表示式來實現動態樣式,用純j**ascript重寫它們是很有意義的,因為這樣既能提高ie效能,同時在其他瀏覽器獲得相同效果的程式設計客棧支援。在這個由msdn動態屬性頁提供的例子裡,下面的css表示式用於在瀏覽器裡居中乙個html塊元素,並且該元素的尺寸可以在執行時改變,每次調整視窗大小都能重新定位在瀏覽器中心:

example div

下面是乙個使用j**ascript和標準css的等價例子:

如果您使用css表示式來模擬早期ie版本中不可用的css屬性,你應該提供版本測試的j**ascript**,為支援css的瀏覽器禁止css表示式。舉例來說,max-width屬性,這個屬性在一定數量的畫素範圍內強制文字換行,在ie 7前是不支援的。下面的css表示式作為一種解決方法,為ie 5和6提程式設計客棧供了這個功能:

瀏覽器渲染機制與效能優化

詳讀了很多文章,最終對比總結出來的瀏覽器渲染機制,並提出相應的優化原則 瀏覽器將從伺服器中獲取的html文件逐步解析,構建dom樹 在構建dom樹時,如果碰到js和css,會載入執行並阻塞html的解析,即html解析器會將控制權交給js或css解析器,當這個元素被解析完之後,將控制權重交回給htm...

web效能優化 瀏覽器渲染原理

在web效能優化 瀏覽器工作原理中講到,瀏覽器渲染是在renderer process中完成的。那我們來看下renderer process究竟幹了什麼?renderer process包含的執行緒有 1.主線程 main thread 2.工作執行緒 workder thread 3.合成器執行緒...

瀏覽器渲染原理

最近在開發b s 框架的專案。開發都是web頁面,也就是執行在瀏覽器上的使用者操作頁面。瀏覽器是使用者得到服務最直接的地方,後台做的好,前台也要讓使用者用著方便。這裡就研究一下瀏覽器的一些原理是如何提高使用者體驗的。首先,這裡有乙個新詞,渲染。什麼是網頁渲染呢?網頁渲染就是html 根據css定義的...