运行 Angular 区域外的分析脚本

Running analytics scripts outside of Angular zone

在我的 Angular 网站上,我正在注入各种第三方脚本来收集分析。这些脚本是延迟加载的,并将向页面上的某些元素添加事件侦听器(针对 f.e.click 事件)。

通常我会将这种功能包装在 runOutsideAngular 中,但由于这些脚本是外部的,我认为我没有这种能力。请注意,这些脚本与 Angular 完全无关。

当 运行 性能记录或 JavaScript 分析器(都在 Chrome 中)时,分析功能似乎在某种程度上 运行 通过 zone.js,而我实际上希望它们尽可能地 运行。

如何确保这些脚本不受任何 Angular 区域的影响?

zone.js 的工作方式是修补应用程序中的所有异步操作。所以这是正确的,你所有的代码,甚至外部代码,都在一个区域中运行。

但这并不意味着它在 Angular 区域中运行并且会导致更改检测周期。它运行在与 Angular 不同的区域。这就是 Angular 甚至使用区域的原因 - 将 Angular 应用程序与其他脚本分开。