Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS:在时间轴中解析HTML事件_Javascript_Angularjs_Performance_Google Chrome Devtools - Fatal编程技术网

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

Javascript AngularJS:在时间轴中解析HTML事件,javascript,angularjs,performance,google-chrome-devtools,Javascript,Angularjs,Performance,Google Chrome Devtools,在调试angularjs应用程序的过程中,我在开发工具中发现了许多解析html事件 时间线显示这个事件是由jQuery.extend.buildFragment调用的,我很难理解是什么指令调用了parse html 我如何检测,究竟是什么导致解析html事件?原因可能是重复的ng,但我不确定 这些事件会减慢$scope.$apply的速度 angular中的每个部分html都将触发解析html事件,如ng include、ng repeats、directive和$digest循环 此外,使用j

在调试angularjs应用程序的过程中,我在开发工具中发现了许多解析html事件

时间线显示这个事件是由
jQuery.extend.buildFragment
调用的,我很难理解是什么指令调用了parse html

我如何检测,究竟是什么导致解析html事件?原因可能是重复的
ng
,但我不确定


这些事件会减慢
$scope.$apply
的速度

angular中的每个部分html都将触发解析html事件,如ng include、ng repeats、directive和$digest循环

此外,使用jQuery将为初始化jQuery实例带来大量开销。当您调用或指令或angular调用element.html('something tags')时,会调用jQuery或jQlite buildFragment,后者反过来会写入innerHTML,这会导致浏览器中的parse html事件,并引导这些子级查找更多指令并编译它们,直到完成


要最小化这些,您需要批处理这些,但角度的性质将很难直接完成。可能您可以尝试使用angular 1.3+中的一次性绑定语法::或减少监视程序,这样angular就不必一次又一次地解析html。

这是哪个工具?也许这个工具只是在解析代码行时记录下来进行分析?这是一个chrome开发工具,我猜,它只是记录浏览器事件,探索调用堆栈,它在屏幕截图的底部,有趣的行被截断:(@Andrey sure,这里有一个完整的调用堆栈jquery句柄数据:)@谢谢,你说得对。类似ng repeat或ng include这样的东西会造成这种情况。你可以把你的评论作为回答,我会接受的。