отображение большой выборки изменяющихся данных
Михаааа
Дата: 24.03.2010 20:47:26
Имеется большая выборка записей. Записи в выборке часто обновляются, добавляются новые, удаляются. Необходимо отображать ее в "пролистываемом" списке на клиенте. При этом возможна сортировка по одному или нескольким полям. Измененные записи в выборке должны в реальном времени отображаться на клиенте
.
.
Подойдет ли мне обычный пейджинг? или он подходит только для не изменяющихся наборов данных?
(Заранее извиняюсь, если напутал в терминах - только начал работать с БД)
n_string
Дата: 24.03.2010 20:59:38
Без проблем, используй стандартный пейджинг: считай записи, дели на страницы и вызывай нужные. Насчет синхронности - веб всегда отличался своей тормознутостью, пока не запросишь данные, они не обновятся.
Михаааа
Дата: 24.03.2010 21:45:29
Дело в том, что у меня не страницы, а пролистываемый список
Пример:
На экране вмещаются 50 записей. Я запросил из выборки с 1-й по 50-ю записи
Пока я их просматриваю, из выборки удалилась 25-я запись.
Я начинаю пролистывать список вниз. Из выборки запросились записи 51-й по 100-ю
В результате я потерял одну запись(а именно 50-ю из первоначальной выборки), так как она сместилась на одну позицию к началу.
n_string
Дата: 24.03.2010 21:47:49
Ничего не поделаешь, это издержки веб. Или обновляйте список ежеминутно.
Михаааа
Дата: 24.03.2010 22:12:04
при страничной организации все получается относительно нормально: перелестнул на другую страницу, при этом часть записей может "потеряться" оставшись на предыдущей странице(как в примере выше) или наоборот продублироваться как в примере описанном ниже - ну и фиг с ним.
Но у меня именно организация в виде плавно проилстываемого списка. и может возникнуть например следующий "косяк":
Пример:
Во время просмотра в первые 50-т записей добавилась еще одна.
Мы пролистываем список вниз
В результате у нас продублируются 50-я и 51-я записи.
.
Согласитесь - будет странно наблюдать такое пользователю)
Как быть в этом случае?)
n_string
Дата: 24.03.2010 23:46:36
Посылайте на сервер булев вызов: если данные обновились - обновить список на клиенте.