angular - 在 Angular 区域之外运行分析脚本
问题描述
在我的 Angular 网站上,我正在注入各种第三方脚本来收集分析。这些脚本是延迟加载的,并将向页面上的某些元素添加事件侦听器(针对 fe 点击事件)。
通常我会将这种功能包装在 a 中runOutsideAngular
,但由于这些脚本是外部的,我认为我没有这种能力。请注意,这些脚本与 Angular 完全无关。
在运行性能记录或 JavaScript 分析器(均在 Chrome 中)时,分析功能似乎以某种方式运行zone.js
,而我实际上希望它们尽可能以本机方式运行。
如何确保这些脚本不受任何 Angular 区域的影响或影响?
解决方案
它的工作方式zone.js
是修补应用程序中的所有异步操作。所以这是正确的,你所有的代码,甚至是外部代码,都在一个区域中运行。
但这并不意味着它在 Angular 区域中运行并且它会导致更改检测周期。它在与 Angular 不同的区域中运行。这就是 Angular 甚至使用区域的原因——将 Angular 应用程序与其他脚本分开。