Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Проблема больших ответов


Автор: KostenkoSergey 1.10.2006, 12:26
Господа, а кто как борется с проблемой больших ответов ?
(фильтры на клиенте не бум рассматривать)

Как кто реализует постраничный вывод ?

Мож ещё есть какие то решения ?

Автор: 3x3 1.10.2006, 19:44
А в чем заключается ваша "Проблема больших ответов"?

Автор: ALKS 1.10.2006, 21:29
мне вот тоже интересно, что за проблема такая?

Автор: KostenkoSergey 2.10.2006, 09:43
ну, например пользователь хочет получить всех клиентов - это в ХМЛ окло 100 МБт - передавать такие данные клиенту наверное не правильно ... (представте если гугл вернёт вам результат запроса одним ответом)

Автор: w1nd 2.10.2006, 10:01
Один из самых верных способов борьбы с этим - недопущение smile
Вместо выдачи клиенту всех данных из интересующей его таблицы, следует заставить его воспользоваться операцией поиска, а при количестве результатов, превышающем заданный порог - предложить уточнить критерии поиска.

Автор: sergejzr 2.10.2006, 10:05
У тебя поисковик распределённый?
Есть много способов от Live query до распределения индекса по клиентам (Peer-to-Peer).

Автор: Tony 2.10.2006, 10:10
Выдавать по кускам.Например страница 1,2,3,4,5.....Показывать клиенту только нужные данные.

Автор: 3x3 2.10.2006, 11:36
Цитата(KostenkoSergey @ 2.10.2006,  09:43)
ну, например пользователь хочет получить всех клиентов - это в ХМЛ окло 100 МБт - передавать такие данные клиенту наверное не правильно ... (представте если гугл вернёт вам результат запроса одним ответом)

А в каком случае с точки зрения бизнес-логики пользователю может потребоваться вытаскивать всех клиентов? Нормально человеку не нужен такой объём данных, что бы "почитать". А если он собирается их как-то постпроцессить (например контекстно что-то искать на полученной странице средствами браузера) - значит вы не предложили ему достаточный уровень сервиса, где бы он мог осуществить выборку того, что его интересует без запроса всего, что есть в базе.

Автор: KostenkoSergey 2.10.2006, 12:53
Цитата(sergejzr @  2.10.2006,  10:05 Найти цитируемый пост)
У тебя поисковик распределённый?
Есть много способов от Live query до распределения индекса по клиентам (Peer-to-Peer). 

Нет, не поисковик. Просто по Украине много филиалов и есть скажем таблица с клиентами - ессно пользователи системы (клиент на делфи, взаимодействие через хмл) не всегда отдаёт себе отчёт в количестве запрашиваемых данных ...

А что такое Live query и распределение индекса по клиентам ?


Цитата(Tony @  2.10.2006,  10:10 Найти цитируемый пост)
Выдавать по кускам.Например страница 1,2,3,4,5.....

А как можно организовать постраничный вывод ?


Цитата(3x3 @  2.10.2006,  11:36 Найти цитируемый пост)
значит вы не предложили ему достаточный уровень сервиса, где бы он мог осуществить выборку того, что его интересует без запроса всего

я специально вначале оговорился, что (фильтры на клиенте не бум рассматривать) 

Автор: sergejzr 2.10.2006, 13:04
Live query, это когда клиент запрашивает у серверов конкретные результаты. Причём какие именно, решает клиент. Например выдача фамилий по алфавиту. Сперва клиент опрашивает сервера, где сколько фамилий и на какую букву, затем локально делает список. В списке стоят в правильном порядке сервера.  В конце опрашивает например сервер З, фамилии с 7-8, сервер А, фамилии с 5-10. Выбирая таким образом список в правильном порядке.
То есть индех создаётся локально. Дерево букв с указателями на сервера, содержащие фамилии с них начинающиеся.

Распределение индекса - примерно тоже самое, но индех не лежит в одном месте, а распределён по серверам Каждый сервер например отвечает за одну букву. На клиенте ты знаешь, что если спросили фамилии начинающиеся с "А", информация о них лежит на сервере А. Запрашиваешь на севере А инфу частями по мере того как юзер их запрашивает. За тем переходишь к букве Б. 

Автор: 3x3 2.10.2006, 15:14
Цитата(KostenkoSergey @ 2.10.2006,  12:53)
Цитата(3x3 @  2.10.2006,  11:36 Найти цитируемый пост)
значит вы не предложили ему достаточный уровень сервиса, где бы он мог осуществить выборку того, что его интересует без запроса всего

я специально вначале оговорился, что (фильтры на клиенте не бум рассматривать)

А при чем тут клиент? У вас приложение на сервере крутится и вы его собираетесь снабдить описанной функциональностью: выдавать клиенту полный список всех пользователей. Я лишь поинтересовался - в каких ситуациях данная функциональность востребована, но из вашего ответа не понял.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)