![](https://vitalflux.com/wp-content/uploads/2016/02/optimize-angularjs-digest-cycle-300x144.jpg)
This article represents tips on making optimal usage of digest cycle which slowers the Angular app. Please feel free to comment/suggest if I missed to mention one or more important points. Also, sorry for the typos.
Following are the key points in relation with optimization of Digest cycle:
- Only the most critical variables should be watched. For instance, one should avoid using $digest method in loop for every message exchanged.
- Usage of one-time binding syntax to avoid objects being added to $$watchers list and thus being checked for updates with each $digest run. The syntax looks like {{::name}}. With this syntax, once the name variable is resolved, Angular removes the name property from the $$watchers list.
- Usage of $scope.$apply vis-a-vis $scope.$digest: When $scope.$apply API is called, it triggers the whole app in the $digest loop which in trun runs $Scope.$digest(). This, in turn, traverses all scopes and bindings of the app looking for the change. One may, thus, want to use $scope.$digest in the local scope object if one is aware of the changes vis-a-vis scope.
- Computations in $watch should be made as minimal as method.
- Optimal usage of ng-repeat as it increases number of $$watchers. The thumb rule is that more $$watchers there are, more slower the app gets.
- One should consider setting the third parameter in $timeout function to false to skip the $digest loop when no watched variables are impacted by the invocation of the $timeout callback function.
Latest posts by Ajitesh Kumar (see all)
- Completion Model vs Chat Model: Python Examples - June 30, 2024
- LLM Hosting Strategy, Options & Cost: Examples - June 30, 2024
- Application Architecture for LLM Applications: Examples - June 25, 2024
Leave a Reply