Angular 4:区域套接字和更改检测

时间:2017-04-08 14:57:17

标签: angular zones

我们的应用程序使用套接字,我们使用socket.io,其事件是使用Observables包装的。

在我们的应用程序的一个区域中,我们有一个每十分之一秒更新一次的图表。该图形使用D3绘制,并直接绘制而不使用角度。

我们希望完全禁用图形区域的更改检测,并确保每个套接字响应(Observable)不会在应用程序树中的任何位置触发更改检测。

我们尝试使用zone.runOutsideAngular,但我们必须将它放在我们订阅包装socket.io的Observable的较低套接字层...虽然这有效,但它会运行角度以外的所有套接字事件。我们只需要在角度区域之外运行图形事件。

理想情况下,我们需要在组件级别使用区域或某些东西,仅用于图形,因为应用程序的其他区域确实需要从套接字事件中进行更改检测...

据我了解,任何异步操作(如套接字事件)都会触发更改检测。

我们可以在更高级别禁用此功能而无需触及较低级别的服务吗?

在角区域外运行特定socket.io事件的最佳方法是什么,以避免在整个应用程序中进行更改检测?

非常感谢任何见解。

0 个答案:

没有答案