2010-11-15 1 views
7

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

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

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

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

Спасибо, Райан

ответ

8

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

jQuery Datatables

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

+0

Ницца. Я рассмотрю это больше. Похоже, мне понадобится комбинация их «Бесконечной прокрутки» и источника данных обработки на стороне сервера. – Ryan

+0

Я собираюсь двигаться вперед с datatables для jquery. Хотя я не использую Django, я нашел хороший пример того, как писать серверную часть, чтобы идти вместе с бесконечным примером прокрутки. Я использую Flask, кстати. Спасибо, Якуб. пример: http://www.assembla.com/code/datatables_demo/subversion/nodes/trunk/1_6_2/datatables_demo?rev=5 – Ryan

1

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

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

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

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

1

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

2

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

+0

Нечетные. Сайт Rico, похоже, не настроен должным образом. Это просто начало загрузки для каждой страницы, а не для обслуживания содержимого. Тем не менее, я продолжу изучать его. – Ryan

+0

Я тоже заметил, что вы все равно можете получить его из [SourceForge] (http://openrico.sourceforge.net/), но демонстрационная страница не работает, что, вероятно, будет самой интересной страницей для вас, чтобы увидеть, что она может делать. – Reboot

3

Попробуйте свиток JQuery.

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

Вы должны вводить данные в divs вместо изображений.

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/

1

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

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

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

Смежные вопросы