2010-11-30 76 views
11

如果HTML足夠複雜,則佈局和呈現HTML內容可能需要一些時間。我無法找到關於如何編寫HTML以幫助佈局引擎(特別是在IE中)以便頁面重繪速度更快的最佳實踐。這樣的一套最佳實踐是否存在?如何在IE中快速呈現HTML代碼

我目前的具體問題是,我的表格數據(在一個表元素),導致繪製頁面太慢,並使DOM更新(懸停效果)和動畫非常緩慢。我相信這不是JavaScript的性能。我使用dynaTrace AJAX檢查了頁面。當我將鼠標懸停在元素上時,CPU變得太忙,但沒有JS運行。懸停是通過向TR元素添加/刪除類來實現的。我也嘗試過Firefox中的YSlow,它沒有顯示任何特定的問題。它也不是網絡相關的。 (Firefox的頁面佈局速度更快,但這不是因爲它的JS引擎速度更快)

是否有一種工具可以在IE中剖析繪圖和佈局,以便我可以找出問題來自哪裏?什麼會導致繪圖如此之慢,以至於我可以在HTML代碼中避免它們?

+3

加速渲染的最佳方式是編寫更少的代碼。 – 2010-11-30 12:06:06

+0

您沒有使用CSS表達式,是嗎?那些JS-in-CSS並傾向於消耗所有可用的CPU功率。 – Piskvor 2010-11-30 12:07:39

回答

17

Internet Explorer在渲染大型HTML表格時速度慢。

請參閱本不錯的文章在MSDN上:Building High Performance HTML Pages,具體到有關表的部分:

  • 設置表格的佈局CSS屬性固定在桌子上。
  • 爲每列明確定義col對象。
  • 在每個col上設置WIDTH屬性。

然後還有對ieblog一個不錯的博客帖子大約表渲染:Table Rendering

歸結爲這一點:儘量讓表格中的內容不那麼複雜,即設置固定寬度,並且沒有太多的動態渲染操作正在進行。 IE首先加載內容,然後必須計算內容的正確寬度==慢。