Мое приложение потребляет много данных в секунду. Мы часто используем метод $ watch на наших экранах. Но особенно в одном из них мы используем его около 20 раз. Я читал, что $scope.$watch
влияет на производительность, поэтому мои вопросы следующие:
1. Если это правда. То, что $watch
имеет штраф за производительность?
2. Чем я могу его заменить?
Вот небольшой пример кода, который мы используем. Обратите внимание, что этому коду 3 года +.
CTRL.JS Файл:
$scope.$watch("pageDataItemsPerPage.num", () => {
ctrl.setMaxPageData($scope.pageDataItemsPerPage.num);
});
или еще один:
$scope.$watch(() => this.Keywords, (keywords) => {
$scope.hintOptions = Object.assign({}, $scope.hintOptions, { keywords });
});
$scope.$watch(() => this.tables, (tables) => {
$scope.hintOptions = Object.assign({}, $scope.hintOptions, { tables });
});
Я понимаю, что процесс для каждого из них будет разным, но я не очень хорошо знаю AngularJS, и мне нужны некоторые рекомендации. Also as a ref, just in this file, we use $scope.$watch over 30 times
.
Если бы вы могли преобразовать эти 3, используя методы ES6 + вместо угловых, было бы здорово.
Относительно производительности:
Похоже, что многие проблемы с производительностью происходят из-за функции $ scope. $ Watch, на мой неопытный взгляд, по крайней мере, проблема не кажется. Главное, по моим данным, RxJS и диспетчеризация событий на лету. Не уверен, что здесь можно сделать.