der*_*n14 33 javascript event-handling javascript-events angularjs
在讨论AngularJS的优点时,双向数据绑定经常被吹捧为Angular相对于其他JS框架的主要优点.  深入挖掘,文档表明这个过程是通过脏检查而不是通过事件驱动的措施来完成的.首先,似乎摘要循环的工作原理是在后台以周期性间隔触发方法,$watch在每个周期内检查所有es.然而,进一步阅读,似乎摘要循环实际上是由rootScope.digest()触发的$.apply,而触发又由事件(!)触发,例如通过调用的onClick事件ng-click.
但是,这怎么可能呢?我认为Angular 不使用更改侦听器.那么摘要循环真的如何运作? Angular会在内部自动启动摘要循环,还是由事件触发的摘要循环? 如果摘要循环自动运行,它运行的频率是多少?
一些澄清要点:
$.apply()pix*_*its 13
角度摘要被触发 - 它们不会通过轮询发生.
在代码完成后,代码执行,angular触发摘要.
例:
 element.on('click', function() {
     $scope.$apply(function() { 
         // do some code here, after this, $digest cycle will be triggered
     });
 });
Angular还会在编译/链接阶段后触发$摘要:
Compile > Link > Digest
至于触发了多少个摘要周期?这取决于范围变量稳定的时间.通常至少需要2个周期才能确定.
Rog*_*Jin 12
主要问题的简短直接答案是"NO",角度不会自动触发消化循环.
TL; DR回答:
摘要循环旨在对与Angular范围实例关联的POJO模型运行脏检查,因此只需在模型可能更改时运行.在浏览器内运行的单页Web应用程序中,以下操作/事件可能导致模型更改
相应地,Angular触发器摘要循环在例如
尝试从我的理解中回答这些奖励问题:
因此,避免角度性能陷阱的一些关键实践是
| 归档时间: | 
 | 
| 查看次数: | 11284 次 | 
| 最近记录: |