Это зависит от того, что вы делаете и как вы это делаете.
Если вы заменяете полную загрузку страницы запросами AJAX (то есть только делаете вызовы AJAX, когда пользователь нажимает на то, что было бы полной загрузкой страницы), то AJAX уменьшит нагрузку на сервер, потому что вы (предположительно) выполняете меньше обработки и возвращаете меньше данные.
С другой стороны, если вы добавляете тип автообновления AJAX, который опрашивает сервер каждые несколько секунд, это может увеличить нагрузку в зависимости от пользователя (это может не увеличить нагрузку на сервер, если пользователь все равно нажимает клавишу F5, чтобы обновить вручную, но большинство людей обычно не делают этого часами)
Еще одна оптимизация AJAX - загружать больше данных при прокрутке. В этом случае, если пользователь не прокручивает весь путь вниз, это бесполезная обработка.
Конечно, на самом деле реализация может искажать результаты в любом случае, это типичные результаты, предполагающие достаточно хорошие реализации.
Конечно, это помогает снизить нагрузку на сервер. Посмотрите на эту презентацию @ jsconf'09 - о том, как Facebook использовал ajax для этого.
Аякс асинхронный. коммуникация с сервером - и вы можете использовать это множеством способов. Люди используют его для загрузки простого JSON в Web в реальном времени и всего, что между ними.
Помните - реальная проблема - это баланс между клиентом и сервером. Старайтесь, чтобы каждая сторона выполняла свою работу так, чтобы система была оптимизирована, и вы получали очевидные преимущества воспринимаемой отзывчивости и реальной скорости.
источник
Есть и другие факторы, которые вы не учитываете - в большинстве случаев AJAX увеличивает нагрузку на сервер. В типичном сценарии без AJAX пользователь загружает одну большую страницу каждые несколько секунд или несколько минут. Да, эта единственная страница немного больше работает для сервера, но у нее достаточно времени между запросами на восстановление и обслуживание других запросов. В сценарии AJAXified эта одностраничная загрузка теперь представляет собой десятки небольших обращений, которые постоянно бьют по серверу и ждут ответов.
Это немного похоже на смерть от 1000 порезов - ни один из запросов не настолько велик сам по себе, но общий вес - убийца. Особенно, если учесть, что эти небольшие запросы примерно так же дороги, как и полностраничный запрос. В обоих случаях вы, вероятно, выполняете весь конвейер веб-приложений, попадаете в базу данных и ждете ответа, сидя на драгоценном HTTP-соединении.
Вот пример того, как ajax может быстро стать ужасным на сервере. Давайте возьмем типичную «исполнительную панель», которая имеет 4 слота для виджетов. Допустим, генеральному директору нравится полный отчет о продажах в правой части, список 10 лучших получателей в середине и отчет о цене акций компании справа. И скажем, мы собираемся сделать это с помощью простых удаленных запросов ajax. Без учета таблиц стилей, изображений и других ресурсов ваша страница теперь требует 4 обходных циклов HTTP (главная страница, каждый из отчетов сводной панели) на сервере. Для выполнения каждого из них требуется полный веб-стек - вы собираетесь работать с базами данных и визуализировать HTML с помощью веб-инфраструктуры, верно? Теперь умножьте одного генерального директора на 2000 удаленных пользователей, некоторые из которых имеют разнородные соединения.
И наоборот, у вас может быть одна серверная страница, которая выполняет и возвращает HTML-скелет, а также данные (включенные в JSON на странице) для отображения отчетов. Одиночное, более крупное соединение, но в целом меньшее количество биений на веб-сервере, потому что вы не обрабатываете 4 запроса и не запускаете 4 конвейера и т. Д.
источник
Если вы используете AJAX для замены работы, которую в противном случае выполнял бы сервер, то да, это повысит производительность сервера. Тем не менее, вы, возможно, спроектировали вещи так, чтобы сервер все еще делал так же много, и теперь все, что происходит с AJAX, превосходит то, что сервер уже делал.
В основном это касается пользовательского интерфейса, так как вы не должны больше ничего делать на стороне клиента. По сути, все, что сервер делал для поддержки пользовательского интерфейса (например, перезагружал страницу с другим макетом в ответ на пользовательский ввод), делал вместо этого с JavaScript.
источник
Если рендеринг HTML является важной частью профиля производительности вашего сервера приложений, то перемещение рендеринга HTML на клиент может стать выигрышем в производительности на сервере приложений.
Однако если рендеринг HTML является небольшой частью профиля производительности вашего сервера приложений, то большее количество запросов обычно будет означать больше обращений через стек, больше запросов, больше всего на сервере приложений, потерю производительности.
Конечно, единственный способ узнать это в вашем конкретном случае - это попробовать.
источник
Вы должны рассмотреть лучший способ реализации вашего решения. Простая нединамическая форма не нуждается в ajax, и добавление ее может фактически повредить производительности. Если ваша проблема в плохих запросах, вся оптимизация ajax в мире не даст вам приемлемого повышения производительности.
Если ваш сервер перегружен, вам нужно выяснить, почему.
Если вы получаете много попаданий, то ajax не решит эту проблему, вам нужно больше возможностей. Добавление ajax только увеличит количество запросов, которые ваш сервер должен обработать.
Если у вас сложная страница, вы должны посмотреть, можете ли вы что-нибудь сделать на стороне клиента, чтобы уменьшить нагрузку на ваш сервер. Если ваша страница динамическая, но на самом деле имеет ограниченное кэширование пакета данных, то для настройки на стороне клиента может быть лучше окупиться.
И иногда Ajax поможет. Когда у вас есть сложные формы с динамическими данными, ajax выигрывает день. Но если ваши запросы сложны и требуют много времени для выполнения, то ajax все равно не решит вашу проблему.
источник