Я работаю над большим приложением angular, и у меня есть пара слушателей прокрутки, чтобы отрегулировать позиции. Когда пользователь прокручивает в основных браузерах, все хорошо, но в IE 11 прокрутка задерживается примерно на 1 секунду и она невероятно медленная.
При отладке я изолировал проблемы и, удалив прокручивающих слушателей, он Устранена проблема, и прокрутка была плавной в IE. Проблема в том, что даже пустой слушатель прокрутки создает эту неприятную задержку прокрутки (также пробовал HostListener, но, очевидно, тот же результат).
window.addEventListener('scroll', () => {
});
Когда я удаляю его или добавляю zone.runOutside Angular, все в порядке
this.zone.runOutsideAngular(() => {
window.addEventListener('scroll', () => {
});
});
Но наше другое приложение, использующее аналогичные модули (с некоторыми настройками), работает нормально без зона.RunOutside Angular. Так что мне интересно, что же такого особенного, и я попытался еще больше выделить проблему, но не смог найти никакой подсказки. Есть ли способ отладить производительность и найти, что вызывает замедление и плохой опыт при прокрутке в IE?
Производительность в IE11 при прокрутке:
Производительность в Chrome на свитке хорошая и довольно плавная:
Редактировать: Событие прокрутки для одной прокрутки вверх-вниз примерно в 15 раз появляется очень медленно. Обычно это должно быть намного быстрее и быстрее.