Загрузка больших данных в jquery - PullRequest
3 голосов
/ 04 января 2011

У меня есть веб-сервис, который возвращает данные, довольно большой набор, может быть 600 строк на 20 столбцов. Какой самый быстрый и эффективный способ загрузить эти данные в HTML-таблицу в коде Jquery?

Я попытался создать таблицу html, просматривая возвращаемые данные и создавая DOM таблицы внутри строки, но часть цикла очень медленная. Я слышал о шаблонах Jquery, но я не уверен, что эта технология достаточно быстра для больших массивов данных ....

Спасибо

Ответы [ 4 ]

2 голосов
/ 04 января 2011

Возможно ли вам изменить веб-службу или сделать так, чтобы другая служба вызывала ее, анализировала сторону сервера данных и возвращала HTML? Обработка JSON на стороне клиента будет вашим узким местом. Если вы можете сделать так, чтобы служба вернула вам требуемый HTML, то это просто element.html(data) на стороне клиента.

Edit: Вопрос о возврате JSON или HTML и плюсы и минусы каждого из них обсуждались здесь довольно мало: 1 , 2 , 3 , 4 , 5

1 голос
/ 04 января 2011

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

Некоторые ссылки:

http://www.infinite -scroll.com /

http://net.tutsplus.com/tutorials/javascript-ajax/how-to-create-an-infinite-scroll-web-gallery/

1 голос
/ 04 января 2011

Кажется, это вопрос дизайна.загрузка 600 x 20 элементов данных за один раз не очень хорошая идея.Представьте себе, что клиенты с низкими системными ресурсами, такие как карманные ПК или TC (тонкий клиент), пострадают при посещении такой страницы.

Вам необходимо кэшировать данные веб-службы и загружать их частями в клиентский браузер на основе действий пользователя.Вы можете использовать некоторые элементы управления Ajax для этого.

0 голосов
/ 06 января 2011

Я думаю, что именно здесь JSON DB может быть наиболее полезным ... вы могли бы написать страницу на стороне сервера, которая ответила бы данными в формате json db для нескольких строк ... и затем создать свой собственный код ajaxзагрузить строки и обработать их в выбранной вами модели отображения, например, <table> с "overflow:auto;" и добавить строки в эту таблицу в виде кусков ... или использовать что-то вроде уже предложенной «бесконечной прокрутки».

...