Я создаю веб-сайт для работы, и одной из наиболее важных функций является сетка с богатым содержанием, отображающая данные. По умолчанию он отображает только 20 элементов на странице, но у нас есть ~ 200 элементов в базе данных, которые можно фильтровать, сортировать и искать.
Наша команда по продажам и маркетингу также запрашивает функцию «перечислить все», чтобы они могли отображать все данные в одном месте и прокручивать, а не листать данные.
Вся эта система построена с использованием ASP.Net MVC на стороне сервера, jQuery и Flexigrid на стороне клиента и использует JSON для обмена данными между ними через AJAX.
Я довольно хорошо разобрался с фактической частью передачи данных. Страница из 20 результатов занимает 800 мс для всего запроса (POST запрос на сервер через Flexigrid и получение ответа). Это больше обработка на стороне клиента, которая требует времени.
Я мог переложить часть клиентской обработки на сервер. Но это приведет к тому, что операция на стороне сервера займет больше времени, и размер возвращаемого документа будет намного больше. Не проблема в ситуациях с высокоскоростным подключением к Интернету ... но это не обязательно так.
Другой вариант, который у меня есть, - это загрузить как можно больше данных и переложить большую часть обработки данных на клиента. Это сокращает время запроса практически до нуля (получение только измененных элементов, а не всего набора данных). Он будет хорошо работать на машинах с быстрыми процессорами и большим объемом оперативной памяти, но это не всегда так.
Поскольку по крайней мере один человек пометил это как «не настоящий вопрос», позвольте мне уточнить ...