Я пишу приложение silverlight, которое запрашивает веб-сервис для заполнения древовидного элемента управления. Каждый элемент будет иметь как минимум 2 уровня дочерних, так что-то вроде этого:
a
+-b
+-c
d
+-g
+-h
e
+-i
+-j
f
+-k
+-l
API веб-службы таков, что я могу получить только один уровень дочерних узлов за раз, поэтому при первой поездке я могу получить a, d, e, f. Чтобы получить b, g, i, k, мне нужно совершить 4 поездки. Точно так же я должен сделать еще 4 поездки, чтобы получить c, h, j, l. (Сервис действительно позволяет мне получить все узлы за одну поездку, но он не дает мне отношения родитель-потомок вместе с ним: - ()
У меня такой вопрос: я должен заставить пользователя ждать некоторое время вперед, пока я получаю все узлы для представления дерева, или я должен просто получить несколько верхних узлов и получить другие узлы по требованию, или в фоновом режиме? Кроме того, узлы могут изменяться асинхронно, поэтому, если я получу все узлы заранее, мне понадобится кнопка «обновить» для просмотра дерева, и если я сделаю это по требованию, мне потребуется стратегия кэширования.
Что лучше для пользователя?