在我的angularjs应用程序的调试过程中,我在开发工具中发现了很多解析html 事件。
时间表说这个事件是由jQuery.extend.buildFragment
调用的,我很难理解,什么指令调用解析html 。
如何检测解析html 事件究竟是什么原因?原因可能是ng-repeat
,但我不确定。
这些事件也会减慢$scope.$apply
。
答案 0 :(得分:0)
angular中的每个部分html都会触发Parse HTML事件,如ng-includes,ng-repeats,指令和$ digest循环。
同样使用jQuery会为初始化jquery实例带来很多开销。 jQuery或jQlite buildFragment在你或者指令或者角度调用element.html('某些标签')时被调用,而这些内容反过来写入innerHTML,导致浏览器中的解析HTML事件并且角逐那些孩子找到更多的指令并编译它们直到它完成。
要最大限度地减少这些,您需要批量处理这些,但角度的性质将很难直接进行。也许你可以尝试在角度1.3+中使用一次性绑定语法::或者减少观察者的数量,所以angular不会一次又一次地解析html。