Информация о фильтрации веб-приложений на стороне клиента и стороне сервера?

У меня есть веб-приложение, которое предоставляет данные (которые обновляются в интервале) для пользователей интрасети, которые могут фильтровать информацию по местоположению.

У меня была дискуссия с коллегой о том, должна ли эта фильтрация проходить на стороне клиента и сервера. Объем информации невелик, но пользователи обычно заинтересованы в определенном месте.

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

3 голоса | спросил fbynite 15 J000000Tuesday14 2014, 08:20:18

1 ответ


5

Некоторые проблемы фильтрации на стороне клиента:

  1. Недействительность кэша . Фильтрация на стороне сервера всегда будет работать с обновленными данными, а клиентские кеши должны обновляться при изменении данных. Это может быть очень сложным, в зависимости от того, какую гарантию вы хотите иметь. Будущий разработчик проклинает это решение. Если он не работает должным образом, клиенты будут проклинать это решение.
  2. Язык запросов . Ваш сервер уже поддерживает SQL из коробки (предполагается из-за тега «sql»), и он сильно отличается от JSON + JavaScript, наиболее очевидного кандидата для решения клиентской стороны. Возможно, существует достаточно общая структура данных на стороне клиента + запрос-запрос, чтобы вы могли ударить его на веб-сайт с минимальными усилиями, но альтернатива неизменно приведет к большему (и более сложному) коду, чем к серверному запросу , Будущий разработчик проклинает это решение.
  3. распространение кода . Многие веб-сайты попали в ловушку с кодом на стороне клиента, где обновление страницы не загружает последний код. Тогда пользователи, вероятно, не смогут запросить, пока не очистят кеш браузера. Клиенты будут проклинать это решение.
  4. Размер сетевого переноса . У вас может быть небольшая база данных прямо сейчас, но ее передача каждому клиенту на регулярной основе будет довольно медленной и дорогостоящей в долгосрочной перспективе. Системный администратор будет проклинать это решение. Любые клиенты на медленных соединениях проклинают это решение.
  5. Использование процессора /аккумулятора . JavaScript использует больше ЦП (и, следовательно, аккумулятор), чем обычный текст. И нет, у вас не будет ресурсов для оптимизации кода. Клиенты с ноутбуками и медленными машинами будут проклинать это решение.

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

ответил l0b0 15 J000000Tuesday14 2014, 13:33:16

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132