我们的应用程序使用套接字,我们使用socket.io
,其事件是使用Observables包装的。
在我们的应用程序的一个区域中,我们有一个每十分之一秒更新一次的图表。该图形使用D3
绘制,并直接绘制而不使用角度。
我们希望完全禁用图形区域的更改检测,并确保每个套接字响应(Observable)不会在应用程序树中的任何位置触发更改检测。
我们尝试使用zone.runOutsideAngular
,但我们必须将它放在我们订阅包装socket.io
的Observable的较低套接字层...虽然这有效,但它会运行角度以外的所有套接字事件。我们只需要在角度区域之外运行图形事件。
理想情况下,我们需要在组件级别使用区域或某些东西,仅用于图形,因为应用程序的其他区域确实需要从套接字事件中进行更改检测...
据我了解,任何异步操作(如套接字事件)都会触发更改检测。
我们可以在更高级别禁用此功能而无需触及较低级别的服务吗?
在角区域外运行特定socket.io事件的最佳方法是什么,以避免在整个应用程序中进行更改检测?
非常感谢任何见解。