Как отобразить результаты запроса к базе данных 100 000 или более строк с HTML? - PullRequest
7 голосов
/ 15 ноября 2010

Мы переписываем сайт, используемый одним из наших клиентов. Пользовательский трафик на нем очень низкий, менее 100 уникальных посетителей в неделю. Это в основном просто приятный интерфейс для их данных в наших базах данных. Это позволяет им запрашивать и фильтровать различные наборы данных.

Мы переписываем сайт на Python, повторно используя ту же базу данных Oracle, на которой сейчас находятся данные. Текущая версия написана в старой, старой версии Coldfusion. Одна из вещей, которые Coldfusion делает хорошо, это то, что отображает тонны записей базы данных на одной странице. Он способен отображать сотни тысяч строк одновременно, не нарушая работу браузера. Он использует Java-апплет, и похоже, что содержимое строк, возможно, сжато и передано через HTML или что-то еще. В HTML имеется большой блок данных, но он не отображается - он просто визуализируется Java-апплетом.

Я пробовал несколько решений Javascript, но все они зависят от того факта, что данные будут присутствовать в таблице HTML или что-то в этом роде. Это приводит к зависанию браузеров и нехватке памяти.

Кто-нибудь знает какие-либо решения этой ситуации? Наш клиент любит возможность прокручивать все эти данные, не нажимая ссылку «следующая страница».

Спасибо, Ryan

Ответы [ 6 ]

8 голосов
/ 15 ноября 2010

Я сделал только то, что вы описываете, используя следующее (что работает очень хорошо):

jQuery Datatables

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

3 голосов
/ 15 ноября 2010

Попробуйте с помощью прокрутки Jquery.

Вместо прокрутки изображения необходима прокрутка данных.

Вы должны накапливать данные в div, а не в изображениях.

http://www.smoothdivscroll.com/#quickdemo

Должно работать.Я желаю.

Ты все равно получишь отличный клиент: -)

Что-то, связанное с твоим Q

http://www.9lessons.info/2009/07/load-data-while-scroll-with-jquery-php.html

http://api.jquery.com/scroll/

2 голосов
/ 15 ноября 2010

Я использую Откройте LiveGrid Rico в проекте, чтобы отобразить таблицу с тысячами строк на странице в виде бесконечной таблицы прокрутки.До сих пор он работал очень хорошо.Таблица запрашивает данные по запросу при прокрутке строк.Параметры отправляются как простые параметры GET, а ответ, который вы должны создать на стороне сервера, - простой XML.Должна быть возможность реализовать бэкэнд данных для Rico LiveGrid в Python.

1 голос
/ 15 ноября 2010

Некоторое время назад я сделал нечто подобное и успешно реализовал таблицу данных YUI в сочетании с Django

.

http://developer.yahoo.com/yui/datatable/

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

1 голос
/ 15 ноября 2010

Вы пробовали jqGrid ? Иногда он может содержать ошибки, но в целом это одна из лучших сеток JavaScript. Это довольно эффективно при работе с большими наборами данных. Он также имеет функцию, благодаря которой сетка извлекает данные асинхронно порциями, но все же допускает непрерывную прокрутку. Он просто запрашивает дополнительные данные, когда пользователь переходит к нему.

1 голос
/ 15 ноября 2010

Большинство людей, в этом случае, будут использовать фреймворк.Лучшим документированным и самым популярным фреймворком в Python является Django.Он имеет хорошую поддержку баз данных (включая Oracle), и вам будет проще всего получить помощь по его использованию, поскольку существует такое активное сообщество Django.

Вы можете попробовать другие фреймворки, но если вы привязаны кPython Я бы порекомендовал Django.

Конечно, Jython (если это вариант) сделает вашу работу очень легкой.Вы можете взять имеющуюся у вас Java-инфраструктуру и просто использовать Jython для создания внешнего интерфейса (и продолжать использовать ваш апплет Java, классы Java и сервер Java).

Интересна проблема с памятью;Мне было бы любопытно посмотреть, что вы придумали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...