Отображение больших данных на веб-сайте

StackOverflow https://stackoverflow.com/questions/658482

  •  20-08-2019
  •  | 
  •  

Вопрос

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

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

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

Это было полезно?

Решение

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

Другие советы

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

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

Page.EnableViewState = false;

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

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

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

Убедитесь, что вы используете 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  -->

Помните <=>

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

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

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

Нуфф сказал

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

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

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

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

Поэтому, если вы действительно хотите отобразить все на одной странице, сделайте ее минимальной:

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

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

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top