IE11中的ChangeDetector角度滚动被延迟且缓慢

时间:2020-02-25 09:03:21

标签: javascript angular internet-explorer angular2-changedetection

我正在开发大型角度应用程序,并且我有几个滚动侦听器来调整位置。当用户在主要浏览器中滚动时,一切都很好,但是在IE 11中,滚动被延迟了大约1秒钟,而且速度非常慢。

调试时,我隔离了问题,并删除了滚动侦听器,从而解决了该问题,并且IE中的滚动很流畅。问题在于,即使是空的滚动侦听器也会造成这种令人不快的延迟滚动体验(也尝试了HostListener,但结果显然相同)。

window.addEventListener('scroll', () => {
});

当我删除它或添加zone.runOutsideAngular时,一切都很好

this.zone.runOutsideAngular(() => {
  window.addEventListener('scroll', () => {
  });
});

但是我们的其他使用类似模块(具有一些自定义功能)的应用在没有zone.runOutsideAngular的情况下运行良好。所以我想知道到底有什么不同,我试图进一步隔离问题,但是找不到任何线索。有什么方法可以调试性能并找到导致IE滚动变慢和不良体验的原因吗?

滚动显示IE11中的性能:

enter image description here

Chrome浏览器中的滚动效果很好且很流畅:

enter image description here

编辑:单次向上滚动至向下滚动的滚动事件约为15倍,显示非常缓慢。通常,它应该更快捷。

0 个答案:

没有答案