title: Coalesce / defer multiple child scope $apply calls
body: <p>In my app I am receiving data via an HTTP channel that's handled in a custom way. I'm building some [data] objects from the pipe, wrap them in a scope.$new(true) and when I receive an update call childScope.$apply() to set the new properties.</p>
  
  <p>This works fine for light loads, all the watchers get notified and has really been running without any issues or missed updates.</p>
  
  <p>Now I'm trying to push a lot more updates and don't know if the pattern used above is the way to go. I think (though have not checked) that each call to $apply calls the digest on the root scope and I want to coalesce these on browser cycles or ~50ms intervals. Currently, whenever I receive ~100 updates on 5000 objects/scopes it kills the browser.</p>
  
  <p>I saw that angular docs say each scope has an $applyAsync method but I cannot find it anywhere, this would be essentially what I am after.</p>
  
  <p>Is this a bad idea and the performance is already good enough? Should I implement my own applyAsync method by using $browser.defer() or some other method?</p>
  
  <p>Edit: just tested the code and indeed the $rootScope.$digest is called for each child scope $apply(). Perhaps moving this part away from Angular JS and using a listener-based approach is better, so this is also a valid answer.</p>