優化css expression效能的方法:1、將CSS Expression在符合的元素中只執行一次;2、在CSS Expression語句體裡,將觸發該Expression的CSS屬性重設即可。
本文操作環境:Windows7系統、HTML5&&CSS3、Dell G3電腦。
如何優化css expression效能?
IE 瀏覽器中 CSS Expression 特性的最大的問題:會重複執行,每秒鐘可能執行了成百上千次,有嚴重的效能問題。如
何對 CSS Expression 進行最佳化呢?
至少:如果我們將 CSS Expression 在符合的元素中只執行一次,效能將會提升很大。
old9 在 《CSS Expression Reloaded》一文中提供了一個解決方案:
在 CSS Expression 語句體裡,將觸發該 Expression 的 CSS 屬性重設。
推薦:《css影片教學》
例如:
div { zoom: expression(function(el){el.style.zoom = "1"; alert(el.tagName);}(this)); }
補充幾點:
CSS Expression 執行在任一個匹配的元素上。
在 CSS expression 內, 「this」關鍵字指向目前符合的 HTML 元素。
CSS 屬性選用一些不常用的屬性來觸發,觸發完重置回預設值。
還有一個類似的解決方式:
div { -singlex: expression(this.singlex ? 0 : (function(t) { alert(t.tagName); t.singlex = 0; } )(this)); }
但此程式碼並沒有完全解決 CSS Expression 最大的效能問題。因為每次觸發還是要去執行 Expression 腳本,例如你滾動滑鼠的中間滾輪。
最後強調,光是對 CSS Expression 做了優化,但並未說 CSS Expression 就不存在其他方面的問題。
以上是如何優化css expression效能的詳細內容。更多資訊請關注PHP中文網其他相關文章!