2016-04-06 22 views
11

我有一個AngularJS應用程序使用Angular Material和從外部API加載的數據。在AngularJS應用程序中,IE「風格計算」性能極其緩慢

這個應用程序沒有什麼特別突破性的東西,我的所有測試在Chrome,Firefox和Safari上都運行得非常好。

但是,當我使用Internet Explorer時,所有地獄都會崩潰。該應用程序非常慢,CSS動畫很痛苦,應用程序完全無法使用。

我已經花了一整天的時間嘗試一些潛在的錯誤修正和調試,但我會成爲王牌。

的事情,我可以看到:

  • 當我使用IE11的開發工具和運行性能日誌,「樣式計算」佔用,到目前爲止,時間最大量。
  • 當我有通配符CSS選擇器性能會降低(如*{box-sizing: border-box}

下面是從性能檢查器的輸出,當從字面上我要做的就是向下滾動的md-virtual-repeat

IE Performance: Style Calculation

正如你所看到的,style calculation在這裏佔用了很多時間。

谷歌搜索已經拿出了這個變通辦法的王牌。這裏發生了什麼?這是一個紅色的鯡魚,問題在我的應用程序中的其他地方(我的JS和我想象的一樣高效,我也測試了沒有真實數據的加載,只有30個靜態對象進入虛擬中繼器 - 結果是一樣的)。

+0

我聽說那些材質設計的css和它的選擇器在IE上很慢。 – YOU

+1

我在IE11中也遇到了類似ngMaterial 1.0.7的問題。當intl-tel-input和angular-material合併時,每次使用電話號碼國家/地區代碼滾動國家/地區列表時,渲染每個滾動需要750毫秒。這是非常荒謬的,並且其他所有瀏覽器都可以正常工作。如果你找到解決方案,請ping我。現在我正在評論CSS,評論一些CSS並注意到速度略有提高,但總體上仍然非常緩慢和滯後。 – ngDeveloper

+2

@ngDeveloper解決方案是(a)升級到最新的ngMaterial,我認爲它是RC2,並且(b)IE被我的CSS數量超載。刪除一些正在使用的CSS庫對網站速度有相當大的影響。 – Jascination

回答

0

作爲@ngDeveloper在評論中指出的解決方案是升級ngMaterial。我有這個問題,並且它是導致我的問題的positionElements。

1

我已經與「樣式計算」取約700毫秒,同時滾動和CPU加載到100%(IE11,Win10)

在我的特定情況下它是由包含的CSS規則導致了同樣的問題一個「+」選擇器,例如

.menu li + li a {border: 0} 

刪除它後 - 工作正常。

希望它可以節省幾個小時的人。