Загрузка / Отображение большого количества данных на веб-странице - PullRequest
6 голосов
/ 12 мая 2010

У меня есть веб-страница, которая содержит таблицу для отображения большого количества данных (в среднем от 2000 до 10000 строк). Эта страница занимает много времени для загрузки / рендеринга. Что понятно.

Проблема заключается в том, что когда страница загружает стремительно растущие объемы памяти ПК (500 мегабайт в моей тестовой системе используется iexplorer), и весь компьютер останавливается, пока не завершится, что может занять минуту или две. IE зависает, пока не завершится, переключение на другую запущенную программу тоже самое.

Мне нужно это исправить - и в идеале я хочу выполнить 2 вещи:

1) Загружать отдельные части страницы отдельно. Таким образом, страница может отображаться изначально без большой таблицы данных. Там будет размещен загрузочный блок, пока он не будет готов.

2) Не используйте слишком много памяти или локальных ресурсов при рендеринге, так что, по крайней мере, они могут одновременно использовать другую вкладку / приложение.

Как бы я поступил так или иначе?

По профессии я программист приложений, поэтому я все еще немного озабочен тем, что я могу сделать в веб-среде.

Приветствует всех.

Ответы [ 3 ]

3 голосов
/ 12 мая 2010

Вы можете попробовать пару вещей:

Загрузка данных асинхронно а также Paging

2 голосов
/ 12 мая 2010

Что касается первой части, она называется Ajax: отображать страницу без таблицы или с пустой таблицей, а затем с помощью ajax-запросов извлекать данные (в формате html или любом другом формате) и отображать их.

Что касается второй части, вам нужна так называемая отложенная загрузка: возможность загружать данные только тогда, когда они нужны пользователю, то есть когда они находятся в видимой части документа. Вы можете посмотреть на этот вопрос для библиотеки DataGrid, способной обрабатывать миллионы строк.

2 голосов
/ 12 мая 2010

Два основных варианта:

  • Разбиение на страницы
  • Ленивая загрузка (загрузка при прокрутке пользователя вниз).Смотрите этот плагин jQuery
...