首頁  >  文章  >  web前端  >  不要使用CSS Expression的原因分析_經驗交流

不要使用CSS Expression的原因分析_經驗交流

WBOY
WBOY原創
2016-05-16 12:04:441051瀏覽

在CSS Expression中使用JavaScript表達式。 CSS屬性是根據JavaScript表達式的計算結果來設定。
CSS Expression在其它瀏覽器中不起作用,因此在跨瀏覽器的編碼中單獨針對IE設定時會比較有用。
從IE5開始支援CSS Expression。我們看下面的程式碼:

複製程式碼 程式碼如下:

background-color: expression ( (new Date()).getHours()%2 ? "#F00" : "#00F" );

上面的程式碼是使用CSS Expression,實作隔一個小時切換一次背景顏色。
CSS Expression的問題就在於它的計算頻率比想像的多出很多。不只是在頁面顯示和縮放時,就是在頁面滾動、甚至移動滑鼠時都會要重新計算一次。給CSS Expression增加一個計數器可以追蹤表達式的計算頻率。在頁面中隨便移動滑鼠都可以輕鬆達到10000次以上的計算量。
一個減少CSS Expression計算次數的方法就是使用一次性的表達式,它在第一次運行時將結果賦給指定的樣式屬性,並用這個屬性來代替CSS Expression。
如果樣式屬性必須在頁面週期內動態地改變,使用事件句柄來取代CSS表達式是一個可行辦法。如果必須使用CSS Expression,一定要記住它們要計算成千上萬次並且可能會對你頁面的效能產生影響。不要讓您的使用者感覺打開你的頁面,機器會變的很慢。


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn