我有一个基于 Angular 构建的复杂 Web 应用程序。
它使用 Mozilla pdf.js 库将 PDF 渲染到画布上。它还使用 AWS Chime SDK 添加视频会议和屏幕共享功能。
有性能问题。我安装了Angular Dev Tools并运行了 Profiler。结果告诉我,有许多连续的变化检测周期。
根据分析器,经常出现的两个消息来源是:
Source: WebSocket.addEventListener:message
Source: Worker.addEventListener:message
据我所知,我没有直接使用 WebSockets 或 Web Worker。但我知道 pdf.js 使用 Web Workers 而 AWS Chime 使用 WebSockets 进行通信。
如何防止这些事件触发更改检测?我的研究表明,Zone.js 覆盖了 addEventListener 调用以触发更改检测。我可以告诉它不要为那些图书馆这样做吗?