在浏览器中Observer和Observable之间传递大量数据时是否会有性能损失(空间/内存或时间)?
例如,浏览器应用程序进行异步调用,返回大量JSON。
假设在完成所述网络呼叫后会通知多个观察者,是否应向这些观察者提供JSON,还是应该对应用程序范围的缓存进行回调?
答案 0 :(得分:0)
在一次大型网络通话的情况下,您所看到的主要性能影响是来自网络的下载时间,而不是JS中的下载时间。所以不,拥有Observable的许多订阅者都不会成为问题。
如果您希望减少订阅者,可能需要查看 share()运算符:https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/share.md
如果您多次拨打同一个电话,那么您当然可能需要重新考虑您的设计。