10 000 + записей в html для быстрого рендеринга
Теперь это будет очень абсурдный вопрос. Но что я могу сделать, это требование клиента. В принципе, у нас есть сетка (тип master-detail), которая достигает примерно 15 тысяч плюс строки (может занять несколько минут до 30-50 тысяч строк).
Мой клиент НЕ хочет пейджинга, не хочет, чтобы данные обрезались. Также он не совсем использует новейшее оборудование, поэтому рендеринг в браузерах - большая проблема. Он хочет просмотреть все, распечатав его или просматривая в браузере. (Вы все можете подумать, как безумно звучит, и это точно).
Теперь я хочу решить эту проблему, быстро отринув html. На данный момент его простой вид сетки asp.net без пейджинга. Это существенно отображает HTML-таблицы. Мои варианты, которые я думаю:
- Ручное рендеринг html с помощью div (для быстрой загрузки)
- экспортировать его в pdf или excel (есть ли способ экспорта без необходимости обращаться к сторонним элементам управления?)
- дать палец (клиенту: D j/k)
Итак, чтобы подвести итог, лучший способ показать 10 000 плюс записи данных на html?
Ответы
Ответ 1
рассмотрим использование плагина для Datatables.
В рамках выпуска DataTables 1.8 новый плагин под названием "Скроллер" был представленный как часть пакета загрузки. Скроллер - это реализация виртуальной прокрутки для DataTables, которая представляет собой вертикально прокручивая стол, прокручивая всю высоту стола, но рисуя только строки, которые необходимы для видимого отображения, что приводит к огромному увеличению производительности. Это довольно захватывающе плагин для DataTables не только для повышения производительности, но и для потому что он эффективно обеспечивает новое взаимодействие пользователя со столом, обеспечивая полную прокрутку очень больших наборов данных.
Ответ 2
Вы должны сделать пейджинг - это не значит, что вам нужно показывать только одну страницу данных за раз, а вам нужно извлекать и отображать страницы данных за раз (и постоянно отслеживать страницы один за другим, пока данные завершено).
Например, отправьте первую страницу данных с сервера в исходный запрос. Установите таймер js и используйте запросы AJAX для извлечения последующих страниц данных и загрузки их в браузер. Вы можете иметь несколько (например, 3-4) запросов AJAX, идущих одновременно для извлечения страниц, - только для правильного упорядочения в таком подходе было бы правильно.
Я лично избегу просмотра сетки и отрисую таблицу html с помощью руководства java- script (с помощью jQuery) или с помощью некоторого java- script шаблона. Я буду использовать JSON для извлечения данных с сервера.
Ответ 3
Он хочет просмотреть все, напечатав
Это imho - единственное жизнеспособное решение для просмотра всей информации. PDF или Excel лучше значительно при обработке большого количества строк.
Выполнение рендеринга довольно просто. Просто установите тип excel mime и верните таблицу HTML.
http://www.designdetector.com/archives/05/07/HTMLToExcelTheEasyWay.php
Когда дело доходит до PDF, вам, вероятно, придется использовать внешнюю библиотеку, такую как PDFSharp.
Ответ 4
Я знаю, что это почти на год, но на случай, если это поможет кому-то.
Использовать SlickGrid - Он использует divs вместо таблиц, что дает намного больше производительности в IE. Проверьте example