2008-10-17 85 views
4

我們的Web應用程序在某些IE瀏覽器中渲染速度很快,而在其他瀏覽器中渲染速度較慢......這似乎是一個HTML渲染問題......頁面的前10%立即顯示,最後90%需要10秒鐘,這是靜態內容。我用firefox/yslow運行,渲染速度非常快。似乎被隔離到某些用戶/配置即ie。怪癖模式似乎沒有什麼區別。如何解決IE中的渲染性能問題

有沒有可用於幫助我發現渲染瓶頸的工具或應用程序?我在我的代碼中做了些令人震驚的事嗎?它可能是一個JavaScript問題?任何幫助或建議將不勝感激。謝謝。

+0

如果你告訴我們你的代碼做什麼,或者更好的是,向我們展示了它的代碼會有所幫助。 – 2008-10-17 14:03:03

+0

不幸的是,我無法顯示代碼,因爲它是一個安全的應用程序。我想解決這個特定的問題,但在此之前,我想了解一下這些問題的故障排除過程,以防將來發生。 – Rob 2008-10-17 15:06:06

回答

4

使用Fiddler來查看加載圖像,CSS,JS文件等的時間。換句話說,緩存問題? Javascript肯定會導致不同瀏覽器版本的問題。在某些版本中,您發現很多優化並不在其他版本中。另外,如果可能的話,確保你的html是格式良好的xhtml。頁面的排列方式也會影響生活。如果您的文檔樹很深,可能需要等待才能渲染大型部分,直到它讀取所有子節點。另外需要注意的是,某些工具欄和插件會預先加載,並且可能會減慢使用壽命。至少,HTTP代理可以幫助您監視網絡上發生的情況。

不知道這些想法是否有助於確切的問題,但它們可以幫助整個生活。

+0

我認爲這個問題可能與用戶機器上的插件有關。卸載多個應用程序後,頁面現在正常渲染。 – Rob 2008-10-20 21:42:42

3

如果它在FF或Chrome中運行速度很快,那肯定是一個javascript問題。 IE7在處理大量腳本和複雜的HTML時速度非常慢。我們有一個共享點頁面,需要10秒才能在IE中呈現,而在FF和Chrome中則需要1秒。我們通過在服務器端處理中添加一個定時器來對頁面進行基準測試,並通過Response.Write()將輸出發送給客戶端。通過這樣做,我們可以確定處理頁面的服務器時間和呈現頁面的客戶端時間(因爲您可以在屏幕上看到計時器結果,然後等待10秒鐘以便其餘的呈現)。客戶端的瓶頸是100%IE。這也解釋了爲什麼速度在不同的人機器上是可變的,因爲取決於客戶端機器的速度,頁面會以8-15秒之間的某個速度呈現。

我們甚至有MS看過這個問題,他們證實IE有一個「豐富的渲染」引擎,它比較慢.... IE8運行速度快得多,但對今天的任何人都沒有幫助。

1

你在CSS中使用任何行爲嗎?如果使用太多和/或它們影響太多元素,我會看到行爲會讓應用程序跪倒。檢查任何潛在的.htc文件。

當然行爲只適用於IE瀏覽器,它們使用JavaScript,所以我相信不同的IE版本處理它們的能力比其他更好。

0

史蒂夫Souders的給出了14(簡單)步驟的精彩演講,以提高網頁的性能:

http://developer.yahoo.net/blogs/theater/archives/2007/08/steve_souders_high_performance.html

如果它掛在頁面中間的第一件事,我會親自看起來要做的是確保或移動我所有的JavaScript都在頁面的底部。

IE非常擅長表現糟糕,尤其是JavaScript,所以如果將它移動到底部,IE可以渲染頁面,然後繼續處理JavaScript。

1

有所謂的dynaTrace這樣的場景特別的工具是免費提供的,在這個網站: http://ajax.dynatrace.com/pages/ 此工具可以真正幫助你,因爲其跟蹤幾乎所有的東西和它專門建立的IE。

0

我使用HttpWatch解決IE中的鏈接資產(圖片,腳本,CSS),網絡或HTTP相關問題。有免費的&付費版本。免費是好的,但你失去了一些不錯的功能。