2016-04-06 20 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} 

删除它后 - 工作正常。

希望它可以节省几个小时的人。