| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 |
| Один из самых верных способов борьбы с этим - недопущение Вместо выдачи клиенту всех данных из интересующей его таблицы, следует заставить его воспользоваться операцией поиска, а при количестве результатов, превышающем заданный порог - предложить уточнить критерии поиска. |
| Автор: 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 | ||
А в каком случае с точки зрения бизнес-логики пользователю может потребоваться вытаскивать всех клиентов? Нормально человеку не нужен такой объём данных, что бы "почитать". А если он собирается их как-то постпроцессить (например контекстно что-то искать на полученной странице средствами браузера) - значит вы не предложили ему достаточный уровень сервиса, где бы он мог осуществить выборку того, что его интересует без запроса всего, что есть в базе. |
| Автор: sergejzr 2.10.2006, 13:04 |
| Live query, это когда клиент запрашивает у серверов конкретные результаты. Причём какие именно, решает клиент. Например выдача фамилий по алфавиту. Сперва клиент опрашивает сервера, где сколько фамилий и на какую букву, затем локально делает список. В списке стоят в правильном порядке сервера. В конце опрашивает например сервер З, фамилии с 7-8, сервер А, фамилии с 5-10. Выбирая таким образом список в правильном порядке. То есть индех создаётся локально. Дерево букв с указателями на сервера, содержащие фамилии с них начинающиеся. Распределение индекса - примерно тоже самое, но индех не лежит в одном месте, а распределён по серверам Каждый сервер например отвечает за одну букву. На клиенте ты знаешь, что если спросили фамилии начинающиеся с "А", информация о них лежит на сервере А. Запрашиваешь на севере А инфу частями по мере того как юзер их запрашивает. За тем переходишь к букве Б. |
| Автор: 3x3 2.10.2006, 15:14 | ||||
А при чем тут клиент? У вас приложение на сервере крутится и вы его собираетесь снабдить описанной функциональностью: выдавать клиенту полный список всех пользователей. Я лишь поинтересовался - в каких ситуациях данная функциональность востребована, но из вашего ответа не понял. |