Как узнать, что именно запускает цикл дайджеста в AngularJS - PullRequest
0 голосов
/ 16 октября 2018

Я столкнулся с проблемами производительности моего приложения AngularJS в IE и начал анализировать причину этого.Основная причина, по-видимому, заключается в том, что используется слишком много наблюдателей, ng-repeat используется для таблицы с большим объемом данных, почти не используется односторонняя привязка данных, а статические данные не кэшируются.В общем, я обнаружил, что это не просто проблема IE.

Однако я также начал анализировать круг дайджеста и пытался его отслеживать:

$rootScope.$watch(function () {
  count += 1;
  console.log('Count: ', count);
});

СогласноВ моей консоли выводится цикл дайджеста каждые 1 с.Это очень, очень проблематично в моих глазах, потому что из того, что я прочитал до сих пор, оно должно срабатывать только в определенных случаях, а не непрерывно.Ну, есть синхронный запрос данных, но это происходит каждые 10 секунд ... но, может быть, некоторые изменения вызывают другое и так далее.

Я хотел бы узнать, какая часть моего кода запускает цикл дайджеста, есть ли способ сделать это?

Заранее спасибо


Обновить

Проблема не была вызвана представлением, содержащим таблицу, я обнаружил скрытое

$interval(function () { ... }, 1000)

где-то еще, что вызывает цикл дайджеста каждую секунду.

...