Загрузка/обновление длинного списка
От: Аноним  
Дата: 19.02.08 13:42
Оценка:
Имеется GUI-приложение, в котором пользователь может работать со списком некоторых объектов (неважно каких именно).
С ними пользователь может делать некоторые действия, причем как с одиночным объектом, так и с группой объектов.
Список объектов получается из некоторого источника данных и может обновляться по команде пользователя.
Проблема в том, что список может быть очень большим и его обновление может занимать долгое время.
Как, по-вашему, это приложение должно вести себя при обновлении списка, чтобы пользователю было удобно работать?

Вариант 1.
При обновлении списка показываем песочные часы, окно с прогрессбаром и т.п. — в общем, ждем-с, при этом операции с объектами
списка заблокированы.
Чем плохо — пока список обновляется, пользователь ничего полезного сделать не может

Вариант 2.
Обновляем список по частям: подгрузили очередной кусок — добавили в список — отрисовали, и т.д., при этом пользователь может выполнять
операции с объектами из уже подгруженной части списка
Чем плохо — если пользователь, например, нажмет Ctrl+A, непонятно как быть:
2а) Выделить уже подгруженную часть списка — плохо тем, что пользователь, будучи уверенным, что выделил все, выполнит
какую-нибудь групповую опреацию и получит совсем не то что хотел
2б) Ожидать полной загрузки списка — а если пользователь задолбается ждать и захочет отменить "выделить все" — что тогда?

Вариант 3.
То же, что и в.2, но до полного обновления списка разрешаем пользователю только операции с одиночными объектами, а групповые операции блокируем
Чем плохо — непривычно для неподготовленного пользователя: почему одни операции работают, а другие нет?

Может быть, есть еще какие-нибудь разумные варианты?

P.S. Возможность делать групповые операции с полным списком объектов или с большим его подмножеством — принципиальна, так
что вариант "Отказаться от Ctrl+A" не годится
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.