Сетка - Когда вы должны перейти от HTML к обработке таблицы на стороне сервера? - PullRequest
0 голосов
/ 20 марта 2012

, Этот вопрос, вероятно, субъективен, но многие "сеточные" плагины Javascript появились для помощи в разбивке по страницам и сортировке таблиц.Обычно они работают двумя способами, первый и самый простой - он берет существующий HTML <table> и преобразует его в сортируемую и доступную для поиска информацию.Во-вторых, он передает информацию на сервер и заставляет сервер выбирать информацию из базы данных для отображения.

У меня такой вопрос: В какой момент (по размеру) он эффективнее использоватьобработка на стороне сервера против отображения всех данных и «плагин сетки» преобразует их в сортируемую / доступную для поиска таблицу на стороне клиента?

Используя datatables в качестве примера, янеобходимо выполнить не менее 3 запросов, чтобы получить общее количество строк в таблице, общее количество отфильтрованных результатов для разбивки на страницы и отфильтрованные результаты, отображаемые для конкретной выбранной страницы.Затем каждый раз, когда я сортирую, я снова спрашиваю.Каждый раз, когда я перехожу на другую страницу или выполняю поиск в таблице, появляются новые запросы.

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

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

Где переломный момент?Есть ли переломный момент, или на стороне сервера или на стороне клиента можно идти 100% времени?

1 Ответ

2 голосов
/ 21 марта 2012

Ответ на ваш вопрос может быть только субъективным.Поэтому я объясняю, как лично понимаю проблему, и даю рекомендации.

На мой взгляд, данные с 2-3 строками и 3-4 колонками могут отображаться в HTML-таблице без использования какого-либо плагина.Данные, которые вы отображаете для пользователя, тем важнее, что пользователь сможет понять информацию, которая будет отображаться.Поэтому я думаю, что информация, например, должна быть хорошо отформатирована и отмечена, например, цветами и значками.Это поможет понять информацию, вероятно, из 10 строк данных, но не намного.Если вы просто отображаете таблицу с 100 или более строками, то вы превышаете пользователя.Пользователь должен будет проанализировать данные, чтобы получить любую полезную информацию из таблицы.Прокрутка данных делает это не проще.

Так что я думаю, что нужно предоставить пользователю удобный или хотя бы удобный интерфейс для сортировки и фильтрации данных из таблицы.Точный интерфейс в основном вопрос вкуса.Например, сетка может иметь дополнительную полосу фильтра

enter image description here

Для фильтрации и даже для сортировки данных важно иметь не чистые строки, а уметь различать данныетакие типы, как integer (10 должно быть после 9, а не между 1 и 2), numbers (правильно интерпретировать '.' и ',' внутри чисел), dates (3/20/2012 должно быть больше как 4/15/2010) и так далее.Если вы просто конвертируете таблицу HTML в какую-то сетку, у вас будут проблемы с правильной фильтрацией или сортировкой.Даже если вы используете чистые локальные данные JavaScript для отображения в сетке, было бы важно иметь источник данных, который имеет некоторую информацию о типе, а затем создавать сетку на основе данных.В случае, если вы можете указать дату в виде JavaScript Date или в виде строки ISO 8601 «2012-03-20», а на сетке отобразятся данные, соответствующие указанному форматеру как 3/20/2012 или 20-Mar-2012.

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

...