Представление таблицы для динамической фильтрации - PullRequest
0 голосов
/ 04 мая 2011

Мне нужно представить таблицу, содержащую данные о некоторых тестах и ​​их результатах.

Существует более 100 тыс. Тестов и несколько результатов на тест.
Необходимо показать результаты тестов, выполненных для устройства.
Одна идея состоит в том, чтобы получить данные с сервера и представить его с помощью jqGrid.

--------------------------
device                   |
--------------------------
     | version1 |version2|
testA| failed   | Passed |
testB|...       | ...    |
.                        |
.                        |
.                        |
-------------------------|

Какой из следующих методов будет лучшим способом для динамического извлечения и представления данных и почему? :

  1. Получить все данные с сервера и отфильтровать их с помощью jquery и javascript.

  2. Получить отфильтрованные данные с сервера и просто представить их.

Ответы [ 3 ]

0 голосов
/ 04 мая 2011

Я думаю, что 100K записей - это очень много для передачи, и, вероятно, это может быть слишком много для браузера.
Подумайте о КБ, которые браузер должен получить как HTML.
У меня нет информации о типах фильтров, которые вам нужно добавить на эту страницу, но исходя из этого общего размера 100 000 записей Я почти уверен, что вы должны фильтровать и разбивать на страницы на стороне сервера . Едва ли возможно, что пользователь захочет проверить столько записей одновременно.

В любом случае, я предлагаю вам проверить стоимость использования сети и доступную вычислительную мощность на стороне сервера и клиента, чтобы решить это.
Однако об этих критериях в Интернете написано довольно много.

0 голосов
/ 04 мая 2011

Ответ на этот вопрос не так черно-белый, как вы хотите. 100k + records - это большой набор данных, независимо от инструмента, используемого для показать это (... и способность человека с пользой понять это). Могут ли пользователи справиться с этим в разбивке по страницам (на клиенте или на сервере) или им нужны данные, отображаемые сразу? Как и когда необходимо фильтровать данные, чтобы сделать этот инструмент полезным для пользователя? Некоторые соображения:

  • Javascript является надежным, но длительное обновление DOM для отображения большого набора просто облагает налогами некоторые старые браузеры (особенно IE6) и приводит к их блокировке. Вы должны знать свою базу пользователей - если они в основном в новых браузерах, это не будет такой большой проблемой.
  • jqGrid имеет демо с 12k записями (Дополнительно >> Большие наборы) . Обратите внимание, что они не загружают все это.
  • Свернуть обновления DOM . Отфильтруйте ваши данные в памяти, затем запишите один раз.
  • Пользовательский интерфейс, который включает в себя «загрузку» анимации, блокировку DOM, отключение кнопок и т. Д., Поможет остановить дублирование запросов сервера / фильтра от нетерпеливых пользователей, которые могут просто отключить это веб-приложение (или их собственный браузер) при попытке использовать набор данных.
  • Минимизируйте количество javascript, используемого для стилизации данных (альтернативные классы строк, выделения строк при наведении курсора, и тому подобное). Положитесь на CSS или отключите некоторые из этих функций в плагине jQuery. Это поможет со скоростью отображения.
0 голосов
/ 04 мая 2011

Всегда получать отфильтрованные данные:

  1. меньше строк, обрабатываемых базой данных (при правильной индексации), означает, что база данных будет лучше масштабироваться.
  2. меньше данных, отправляемых по сети, означаетчто он будет лучше масштабироваться
  3. меньше данных, анализируемых на стороне клиента, увеличит воспринимаемую производительность
  4. меньше данных на стороне клиента уменьшит объем памяти

Иесли ваша сетка выполняет разбиение на страницы, вам также может понадобиться извлекать только одну страницу записей за раз.

Удачи.

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