我正在开发具有树形层次结构的API。我正在考虑支持树中所有节点的异步加载,但我不确定这是否是一个好主意。我打算为此使用反应式扩展。
每个节点都有一个Load方法,直到所有其子节点都已加载(事物首先加载深度)后,该方法才会完成。因此,对于一个简单的结构:
1
|-- 1.1
| |- 1.1.1
| |- 1.1.2
|-- 1.2
|- 1.2.1
|- 1.2.2
节点1异步加载1.1和1.2,然后等待它们完成,依次加载1.1.1、1.1.2、1.2.1、1.2.2 ...,这是6个异步加载操作。该树可能有1万个节点...这是很多异步加载操作-问题1-这会产生问题吗?
我想以一种可以在一定时间范围内分散负载的方式实施此操作,因此,如果需要一次加载许多节点,用户可以调整加载时间以避免应用程序冻结。 问题2-我该如何在响应式扩展中做到这一点?我需要研究哪些组件,自定义可观察对象和主题?不知道从哪里开始。
答案 0 :(得分:1)
我最初的想法是使用Observable.Join模式...在这里考虑我的答案(以及在此处提供示例的链接:https://stackoverflow.com/a/3868608/13131)https://stackoverflow.com/a/16462959/13131。
HTH