медленный рендеринг данных в таблицу с использованием тегов отображения - PullRequest
0 голосов
/ 08 апреля 2010

Я использую displaytag 1.0 в базовом приложении Struts. У меня есть 5 миллионов строк для отображения отчетов обо всех строках данных с помощью разбиения на страницы с 50 записями. На рендеринг данных уходит 5 минут. Можем ли мы уменьшить это? Подскажите, пожалуйста, как сделать это за одну минуту.

1 Ответ

0 голосов
/ 08 апреля 2010

По-видимому, он извлекает базу данных complete в память Java, а не только данные, представляющие интерес (текущая страница). Вам нужно будет ввести нумерацию на основе запросов на уровне DAO.

Для начала, в вашем классе DAO выполните SELECT stuff FROM data LIMIT firstrow OFFSET rowcount или что-то в этом роде в зависимости от используемой БД. Затем в JSP создайте таблицу HTML самостоятельно с помощью JSTL c:forEach или Struts 'logic:iterate. Сохраните один или два параметра запроса в фоновом режиме в элементе input type="hidden": первая отображаемая строка (firstrow) и, в конечном итоге, количество отображаемых одновременно строк (rowcount). Наконец, предоставьте несколько кнопок, которые инструктируют код на стороне сервера, чтобы каждый раз увеличивать / уменьшать firstrow на rowcount. Просто сделай математику.

Более подробный ответ здесь .

...