Показать большие данные на веб-сайте - PullRequest
1 голос
/ 18 марта 2009

У меня есть несколько таблиц в моей базе данных с примерно 7K строк, и мне нужно создайте отчет на веб-сайте (asp.net) с настраиваемым форматированием, сводную таблицу, как детали.

Что является лучшим решением для этого, потому что когда я рендерирую, например, повторитель с таким количеством данных, это очень медленно.

Спасибо за совет

Ответы [ 8 ]

2 голосов
/ 18 марта 2009

Если вам не нужна подкачка страниц, то вам, вероятно, понадобится AJAX для выборки строк при прокрутке и, возможно, удаления строк при их прокрутке вне поля зрения, если вам нужно сэкономить память.

2 голосов
/ 18 марта 2009

Отключить режим просмотра

Если вам это не нужно

Page.EnableViewState = false;

Разделить таблицу

Если вы не хотите идти по пейджинговому маршруту, вы также можете попробовать разбить большой <table> на несколько меньших <table> с. (Раньше был случай, когда браузер мог отображать таблицу только после того, как он увидел окончательный </table>. Я не уверен, что это все еще верно, но определенно стоит попробовать)

Избавиться от дерьма

Убедитесь, что вы используете css и не используете такие вещи, как

<td width="40" valign="top"> 50 </td>
<td class="a"> 50 </td> <!-- better  -->
<td>50</td> <!-- best  -->
<!-- if you need to specify a width, you only need to do it in one row  -->

Помните crap * 7000 = alot of crap

Уменьшить размер страницы любой ценой

Иногда проблема не в отображении страницы, а в загрузке, которая вызывает проблему, поэтому проверьте это.

Вложенные таблицы действительно причинят вам боль

Нуфф сказал

1 голос
/ 18 марта 2009

Вы не упоминаете, какой язык используете, но упоминание ретранслятора предполагает ASP.Net? По моему опыту, связывание данных с DataGrid происходит быстрее для больших наборов данных.

НО, мне интересно, почему вы хотели бы отображать столько данных на веб-странице. Ни один здравомыслящий пользователь не сядет, не прокрутит столько данных и не найдет их полезными. Ограничьте ваши данные соответствующими данными, которые будут полезны для пользователя - как правило, фильтруются до менее чем 100 строк.

IMO, отчет с таким количеством данных бесполезен, независимо от формата, но если вам абсолютно необходимо иметь все это для печатного отчета или чего-то подобного, рассмотрите возможность создания документа PDF на сервере.

1 голос
/ 18 марта 2009

Рассматривая типичную строку, подобную этой:

<tr><td>ID</td><td>Some data</td><td>More and more data</td></tr>

Каждая строка содержит 66 символов, поэтому наличие строк из 7 тыс. Будет суммировать почти 500 тыс. Данных. И это очень много для веб-дисплея.

Так что, если вы действительно хотите отобразить все на одной странице, держите его минимальным:

  • Не тратьте места
  • Не используйте атрибуты, если это абсолютно невозможно
  • Не используйте class = "", если у вас нет разных классов для разных строк (вместо этого применяйте один и тот же класс ко всем строкам)

Во всяком случае, в зависимости от целевого компьютера + браузера, это может быть очень медленным, если ваши строки больше.

1 голос
/ 18 марта 2009

Я бы предложил использовать пейджинг.

0 голосов
/ 18 марта 2009

Я использовал сетки Dev Express для одного клиента, чтобы иметь дело с отчетностью, и им это нравится (хотя я бы предпочел свернуть свою собственную!)

См. http://demos.devexpress.com/ASPxGridViewDemos/

0 голосов
/ 18 марта 2009

Если вы действительно ищете «лучшее» решение для «веб-приложения», я бы прямо предложил вам использовать Flash / Flex для эффективного рендеринга такого количества строк. Если использование чего-либо, кроме базового HTML, не подходит, то я бы предложил динамически извлекать новые строки, когда пользователь прокручивает, как предложил @mbeckish ...

0 голосов
/ 18 марта 2009

Возможно, вы захотите попробовать специальный инструмент отчетности для такого большого количества данных. Моя компания производит инструмент под названием RSinteract (бесстыдная заглушка). Это использует службы отчетов SQL Server.

Если вы просто хотите сбросить данные. Я предполагаю, что браузер блокируется во время рендеринга или во время выполнения запроса. Если вы знаете, какой у вас целевой браузер ... вы можете использовать ссылку "Еще ...", чтобы получить следующий набор данных и иметь ограничение в 1000 строк. Однако это повлияет на поиск Ctrl + F. Похоже на пейджинг, но ответственность за это возлагается на пользователя.

...