ChangeDetector Angular прокрутка задерживается и замедляется в IE11 - PullRequest
0 голосов
/ 25 февраля 2020

Я работаю над большим приложением angular, и у меня есть пара слушателей прокрутки, чтобы отрегулировать позиции. Когда пользователь прокручивает в основных браузерах, все хорошо, но в IE 11 прокрутка задерживается примерно на 1 секунду и она невероятно медленная.

При отладке я изолировал проблемы и, удалив прокручивающих слушателей, он Устранена проблема, и прокрутка была плавной в IE. Проблема в том, что даже пустой слушатель прокрутки создает эту неприятную задержку прокрутки (также пробовал HostListener, но, очевидно, тот же результат).

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

Когда я удаляю его или добавляю zone.runOutside Angular, все в порядке

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

Но наше другое приложение, использующее аналогичные модули (с некоторыми настройками), работает нормально без зона.RunOutside Angular. Так что мне интересно, что же такого особенного, и я попытался еще больше выделить проблему, но не смог найти никакой подсказки. Есть ли способ отладить производительность и найти, что вызывает замедление и плохой опыт при прокрутке в IE?

Производительность в IE11 при прокрутке:

enter image description here

Производительность в Chrome на свитке хорошая и довольно плавная:

enter image description here

Редактировать: Событие прокрутки для одной прокрутки вверх-вниз примерно в 15 раз появляется очень медленно. Обычно это должно быть намного быстрее и быстрее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...