Привязка данных медленная - Angular 5 - PullRequest
0 голосов
/ 05 декабря 2018

Я разрабатываю приложение Angular 5 с простым запросом HttpClient для получения единственного значения из серверной части.Я связываю данные, полученные от службы API, с HTML.(используя [(ngModel)]).Ответ от API составляет ~ 200 мс.Но время, необходимое для отображения данных на экране, составляет ~ 3 секунды.Я не уверен, что я иду в правильном направлении с этим.Каковы возможности, почему это происходит?

1 Ответ

0 голосов
/ 05 декабря 2018

У меня была такая же проблема некоторое время назад, и это то, что я нашел, что помогло мне решить эту проблему.

  1. В DOM было добавлено много слушателей событий.В частности, я обнаружил, что эти прослушиватели событий были добавлены в document, скажем, 20 click прослушиватели добавлены в документ, поэтому каждый щелчок в любом месте ваших приложений будет вызывать все обработчики 20 щелчков и будет вызывать 20 changeDetectionциклы для всего приложения.(У меня была эта проблема, потому что я использовал один из пакетов css: переключение выпадающего меню из Bootstrap)

Вы можете проверить event listeners, как показано на рисунке ниже.

enter image description here

В вашем приложении отображается много компонентов, например, у вас есть список из 100 элементов, и каждый элемент в списке является компонентом сам по себе.Теперь после некоторого события браузера, когда в приложении запускается цикл changeDetection, будет проверяться все приложение вместе с проверкой изменений во всех 100 визуализированных компонентах.В зависимости от ваших потребностей приложения. Если у вас много повторяющихся компонентов, вы можете изменить стратегию changeDetection для повторяющегося компонента на onPush, таким образом, по крайней мере все входные свойства соответствующего компонента не будут проверяться, если ихссылки не изменены.

Надеюсь, что эти два полезны для вашего приложения!

...