2013-06-04 85 views
1

我有一個頁面有幾個大表。使用Chrome加載此頁面或觸發事件速度足夠快,但是當我在IE7中運行此頁面時,頁面速度很慢。ASPX頁面呈現快速與FF和瀏覽器,但在IE瀏覽器上慢

有時候,如果我點擊一個按鈕,它被加載,而不是與Chrome或FF瞬間動作之前,它需要幾秒鐘。

我GOOGLE了周圍了一下,找到一個解決這個問題,我試圖HTML驗證。如果我以HTML格式保存頁面並將其插入驗證程序,則會出現1K +錯誤,其中大多數錯誤都是未關閉的標記。

如果我檢查ASP代碼,因爲所有的代碼與對象動態寫入(我沒有寫我自己的HTML代碼),這是非常有限的,我的所有的標籤被關閉,我沒有得到一個警告或Visual Studio中的錯誤。

在這個頁面中使用jQuery和一些自定義JavaScript(沒有什麼複雜的)。 我的所有數據都來自SQL服務器,如果我一次運行所有查詢,它仍然少於一秒,很確定這些查詢寫得儘可能最好。

任何想法,我怎樣才能使網站快於IE瀏覽器? (不幸的是,90%的用戶使用IE7)

+1

你可以在這裏發佈一些你的代碼或結果標記嗎? – Ted

+0

實際上,IE7(或任何兼容性視圖的IE瀏覽器打開)將使用一個非常老的(慢)JavaScript引擎。也許它真的不能做得更好。如果您使用完全標準而不是兼容模式的IE9 +試用您的網站,那麼運行速度會更快? –

回答

1

我建議您在Firefox上安裝插件yslow,並檢查插件給您的網站帶來了什麼樣的分數以及它爲優化網站提供了哪些推薦。

另外,你應該知道IE 6-8在編譯javascript和DOM操作時速度非常慢。我知道,識別javascript緩慢起伏的最簡單方法是簡單地從您的頁面中逐個註釋掉JavaScript函數,直到網站開始加載爲止。然後,您將努力優化您認爲緩慢加載的任何功能。

1

沒有看到任何代碼,很難斷言爲什麼會出現這些性能問題。有一件事我能想到的是jQuery的運行在IE7

簡而言之,當你使用jQuery的選擇(如$(".some-class"))jQuery將使用原生功能document.querySelectorAll,使用CSS選擇器(除非你」的查詢DOM重新使用jQuery特定的選擇器,如:animated)。但是,IE7沒有針對querySelectorAll方法的實現,這會導致jQuery以更迭代的方式搜索DOM。我不完全確定這是如何工作的,但我確信可以在sizzlejs.org找到

現在,如果您在IE7中有一個非常大的HTML文檔,並且您例如將事件附加到每行的你的表如下所示:$(".some-class-that-marks-as-clickable").click(...),jQuery將不得不尋找所有這些行並應用處理程序。如果是這種情況,可以通過改爲使用每個可點擊元素上的onclick屬性來輕鬆解決。

當然,因爲你還沒有發佈任何代碼,我不能保證,這是你的問題。我只知道幾年前我有這個確切的問題,導致IE7在大約45秒內渲染頁面,而Firefox在不到一秒的時間內完成。

相關問題