AngularJS:在时间轴中解析HTML事件

时间:2015-07-29 10:18:06

标签: javascript angularjs performance google-chrome-devtools

在我的angularjs应用程序的调试过程中,我在开发工具中发现了很多解析html 事件。 enter image description here

时间表说这个事件是由jQuery.extend.buildFragment调用的,我很难理解,什么指令调用解析html

如何检测解析html 事件究竟是什么原因?原因可能是ng-repeat,但我不确定。

这些事件也会减慢$scope.$apply

1 个答案:

答案 0 :(得分:0)

angular中的每个部分html都会触发Parse HTML事件,如ng-includes,ng-repeats,指令和$ digest循环。

同样使用jQuery会为初始化jquery实例带来很多开销。 jQuery或jQlite buildFragment在你或者指令或者角度调用element.html('某些标签')时被调用,而这些内容反过来写入innerHTML,导致浏览器中的解析HTML事件并且角逐那些孩子找到更多的指令并编译它们直到它完成。

要最大限度地减少这些,您需要批量处理这些,但角度的性质将很难直接进行。也许你可以尝试在角度1.3+中使用一次性绑定语法::或者减少观察者的数量,所以angular不会一次又一次地解析html。