Каковы некоторые передовые практики для клиента -серверное взаимодействие?

Я создаю веб-сайт для работы, и одной из наиболее важных функций является сетка с богатым содержанием, отображающая данные. По умолчанию он отображает только 20 элементов на странице, но у нас есть ~ 200 элементов в базе данных, которые можно фильтровать, сортировать и искать.

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

Flexigrid data

Вся эта система построена с использованием ASP.Net MVC на стороне сервера, jQuery и Flexigrid на стороне клиента и использует JSON для обмена данными между ними через AJAX.

Я довольно хорошо разобрался с фактической частью передачи данных. Страница из 20 результатов занимает 800 мс для всего запроса (POST запрос на сервер через Flexigrid и получение ответа). Это больше обработка на стороне клиента, которая требует времени.

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

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

Поскольку по крайней мере один человек пометил это как «не настоящий вопрос», позвольте мне уточнить ...

  • Что я могу сделать, чтобы уменьшить время обработки на стороне клиента, не передавая столько обработки на сервер, что У меня возникает проблема со временем передачи данных?
  • Каковы некоторые передовые методы, когда дело доходит до балансировки обработки на стороне клиента и обработки на стороне сервера?
  • Что лучше: ошибиться на стороне сервера или клиента ?
  • Какие инструменты я могу использовать, чтобы лучше оптимизировать эти обмены, чтобы все не пошло наперекосяк?
9
задан EAMann 2 November 2011 в 03:44
поделиться