Sasqwatch is Real
summary
Claims that hidden Angular watchers called Sasqwatches cause jank and shows concrete measurements using ng-stats (Kent C. Dodds) to count watchers and $digest times. An audit of sample markup finds 24 Sasqwatches where developers guessed 20; Angular adds two default watchers (scroll, location). Swapping ng-show for ng-if drops watchers (8 → 5), manually unregistering watches drops counts (4 → 3), and a 1 ms filter delay explodes digest time. Recommends one-time bindings, ngModelOptions debouncing, and custom event directives instead of always using $apply.
AI-written summary · about
chapters (11)
- 0:00Navy to Senior Engineer
- 1:27Sasqwatches in Angular
- 3:12Digest cycle hurts performance
- 5:18What are Sasqwatches
- 6:20Hidden watchers in an app
- 9:07Ng-show/ng-hide watcher traps
- 11:34Ng-mouseenter digest waste
- 13:40Remove unnecessary watchers
- 15:07Filters & ng-repeat killers
- 16:32Building smooth Angular apps
- 18:17Avoid Angular directives
related talks
19mAngular Performance Patterns
31mAngular Performance: Your App at the Speed of Light
20mAngular Performance in the Enterprise
17mNavigating Angular's Evolution for Peak Performance!
30mOptimize and debug change detection like a pro
23mPerformance optimizations in Angular
33mMonitor the Angular application with Zone
38mIntroduction to AngularJS
