У меня есть приложение Angular/AngularJS Upgrade App, и я в настоящее время в процессе миграции всего от AngularJS до Angular. Это довольно большой проект, поэтому мне определенно нужно идти по пути Upgrade.
Я использую @uirouter/angular-hybrid и имею корневое состояние, которое по-прежнему является AngularJS (Navigation and stuff) и дочерним. В этом детском представлении я теперь медленно обновляю все компоненты до Angular. По соображениям производительности мне пришлось использовать downgradeModule() (https://angular.io/guide/upgrade-performance) вместо UpgradeModule.
Для компонентов пользовательского интерфейса я использую угловой материал 2.
Так много для настройки, теперь к вопросу/проблеме:
Когда вкладка со страницей находится в фоновом режиме, и вы вернетесь на страницу позже (по крайней мере от 5 до 10 минут), вся страница отстает и не отвечает. Чем дольше вы находитесь, а вкладка находится в фоновом режиме, тем дольше будет отставание.
Что я уже пробовал/узнал:
- Кажется, что зарегистрированы события, но поскольку вкладка находится в фоновом режиме, они не выполняются, но все они выполняются одновременно, как только вы вернетесь на вкладку. Здесь снимок экрана профилирования
- Удаление обнаружения угловых изменений и использование
ngZone: 'noop'
не влияет - Отключение всех анимаций не влияет
- Включение режима углового производства немного улучшило его (также может быть иллюзией), но проблема все еще сохраняется
- Я разрабатываю в Chrome, проблема существует и в других браузерах (например, Firefox, Safari)
- Только если компонент просмотра маршрутизатора является угловым компонентом, компонент просмотра AngularJS, похоже, не влияет
В настоящее время я работаю над чистым образцовым приложением, чтобы воспроизвести проблему и иметь еще несколько контекстов для дальнейшего тестирования. Я добавлю это в ближайшее время.
Варианты Lib
Угловое: 6.1.0
AngularJS: 1.7.2
zone.js: 0.8.26
@uirouter/угло-гибридный: 6.0.0