AngularJS:解析时间轴中的HTML个事件
AngularJS: Parse HTML events in timeline
在调试我的 angularjs 应用程序时,我发现开发工具中有很多 parse html 事件。
时间线说这个事件是由jQuery.extend.buildFragment
调用的,我很难理解,什么指令调用parse html.
我如何检测 解析 html 事件的确切原因?可能原因可能在 ng-repeat
,但我不确定。
这些事件也会减慢 $scope.$apply
。
angular 中的每个部分 html 都会触发 Parse HTML 事件,例如 ng-includes、ng-repeats、指令和 $digest 循环。
同时使用 jQuery 会给你初始化 jquery 实例带来很多开销。 jQuery 或 jQlite buildFragment 在您或指令或 angular 调用 element.html('something tags') 时被调用,后者又写入 innerHTML 导致解析 [=浏览器中的 22=] 事件和 angular 遍历那些 children 以查找更多指令并编译它们直到完成。
要最小化这些,您需要对它们进行批处理,但是 angular 的性质很难直接执行。也许你可以尝试在 angular 1.3+ 中使用 one-time 绑定语法 :: 或减少观察者,这样 angular 就不必一次又一次地解析 html。
在调试我的 angularjs 应用程序时,我发现开发工具中有很多 parse html 事件。
时间线说这个事件是由jQuery.extend.buildFragment
调用的,我很难理解,什么指令调用parse html.
我如何检测 解析 html 事件的确切原因?可能原因可能在 ng-repeat
,但我不确定。
这些事件也会减慢 $scope.$apply
。
angular 中的每个部分 html 都会触发 Parse HTML 事件,例如 ng-includes、ng-repeats、指令和 $digest 循环。
同时使用 jQuery 会给你初始化 jquery 实例带来很多开销。 jQuery 或 jQlite buildFragment 在您或指令或 angular 调用 element.html('something tags') 时被调用,后者又写入 innerHTML 导致解析 [=浏览器中的 22=] 事件和 angular 遍历那些 children 以查找更多指令并编译它们直到完成。
要最小化这些,您需要对它们进行批处理,但是 angular 的性质很难直接执行。也许你可以尝试在 angular 1.3+ 中使用 one-time 绑定语法 :: 或减少观察者,这样 angular 就不必一次又一次地解析 html。