Лучше всего AJAX используется для отправки небольших данных. Вот простой пример.
Я загружаю страницу, содержащую информацию о запасах. В нем есть графики, диаграммы, информация о компании, а также отображается цена акций. Каждые 30 секунд я делаю запрос AJAX, который получает обновленную стоимость акций и изменяет ее на странице.
Без AJAX я мог бы решить обновлять всю страницу каждые 30 секунд, но с AJAX я могу просто сделать легкий запрос, чтобы получить крошечный бит информации, которая мне нужна.
Использование AJAX для отправки форм - не всегда лучший вариант. Помимо того, что вы не получаете явного преимущества перед обычным размещением формы, вы нарушаете такие соглашения, как история браузера (хотя некоторые браузеры теперь включают «состояния» JavaScript в качестве страниц в истории).
При использовании AJAX вам необходимо сообщить пользователю, что что-то пошло не так. Вы можете сделать это с помощью jQuery, указав, что должно произойти при ошибке, но многие люди забывают это сделать, и конечный пользователь блаженно не подозревает ни о какой проблеме.
Также следует остерегаться любых ошибок JavaScript, которые могут помешать запуску ваших событий - или, если JavaScript отключен, в любом случае обеспечение нормальной отправки формы до добавления кода AJAX является самым безопасным вариантом.
PRO:
Во многих случаях связанные страницы на веб-сайте состоят из большого количества общего содержимого. Используя традиционные методы, этот контент придется перезагружать при каждом запросе. Однако с помощью Ajax веб-приложение может запрашивать только тот контент, который необходимо обновить, тем самым резко сокращая использование полосы пропускания и время загрузки.
Использование асинхронных запросов позволяет пользовательскому интерфейсу веб-браузера клиента быть более интерактивным и быстро реагировать на вводимые данные, а разделы страниц также можно перезагружать по отдельности. Пользователи могут воспринимать приложение как более быстрое или более отзывчивое, даже если приложение не изменилось на стороне сервера.
Использование Ajax может уменьшить количество подключений к серверу, поскольку скрипты и таблицы стилей нужно запрашивать только один раз. [12]
Состояние может поддерживаться на всем веб-сайте. Переменные JavaScript сохранятся, потому что главную страницу контейнера не нужно перезагружать.
ПРОТИВ:
> Из-за своей динамической природы интерфейсы Ajax часто труднее разрабатывать по сравнению со статическими страницами.
Страницы, динамически созданные с использованием последовательных запросов Ajax, не регистрируются автоматически в механизме истории браузера, поэтому нажатие кнопки браузера «Назад» может не вернуть пользователя к более раннему состоянию страницы с поддержкой Ajax, а вместо этого может вернуть их. до последней полной страницы, посещенной перед ней. Обходные пути включают использование невидимых IF-фреймов для запуска изменений в истории браузера и изменение части привязки URL-адреса (после #) при запуске Ajax и отслеживание изменений.
Динамические обновления веб-страниц также затрудняют для пользователя создание закладок для определенного состояния приложения. Существуют решения этой проблемы, многие из которых используют идентификатор фрагмента URL-адреса (часть URL-адреса после символа «#»), чтобы отслеживать и позволять пользователям возвращаться к приложению в заданном состоянии.
Поскольку большинство поисковых роботов не выполняют код JavaScript, общедоступные индексируемые веб-приложения должны предоставлять альтернативные средства доступа к контенту, который обычно извлекается с помощью Ajax, чтобы поисковые системы могли его индексировать.
Любой пользователь, чей браузер не поддерживает JavaScript или XMLHttpRequest или просто отключил эту функцию, не сможет правильно использовать страницы, зависящие от Ajax. Точно так же такие устройства, как мобильные телефоны, КПК и программы чтения с экрана, могут не поддерживать требуемые технологии. Программы чтения с экрана, которые могут использовать Ajax, по-прежнему не могут правильно читать динамически сгенерированный контент. Единственный способ позволить пользователю выполнять функциональные возможности - это вернуться к методам, отличным от JavaScript. Этого можно добиться, убедившись, что ссылки и формы можно разрешить должным образом и не полагаться только на Ajax. В JavaScript отправка формы может быть остановлена с помощью «return false».
Одна и та же политика происхождения предотвращает использование некоторых методов Ajax в разных доменах, хотя W3C имеет черновик объекта XMLHttpRequest, который включит эту функцию.
Как и другие веб-технологии, Ajax имеет собственный набор уязвимостей, которые разработчики должны устранить.Разработчикам, знакомым с другими веб-технологиями, возможно, придется изучить новые методы тестирования и кодирования для написания безопасных приложений Ajax.
Интерфейсы на базе Ajax могут значительно увеличить количество пользовательских запросов к веб-серверам и их внутренним компонентам (базам данных или другим). Это может привести к увеличению времени отклика и / или потребностям в дополнительном оборудовании.
wikipedia.org
Что ж, у jAndy, похоже, есть все преимущества, и вы, кажется, уже знаете о преимуществах, иначе вы бы не воспользовались им.
Обратной стороной является то, что кнопка "Назад" в браузере не работает, если вы загружаете страницы целиком (да, это тоже можно исправить с помощью дополнительных JS-мастеров). Но если весь ваш сайт использует ajax, он, вероятно, не будет работать с отключенным JS. Кроме того, он не создает очень хороших URL-адресов. Если вы хотите связать своего друга с определенной страницей на сайте, интенсивно использующем ajax, и предполагая, что вы выполнили свое мастерство JS, так что это действительно возможно (изменение URL-адреса после символа #), ему все равно придется загрузить основной сначала страницу, а затем подождите, пока JS запустится, прежде чем он сможет ajax-загрузку контента, который вас действительно интересует. Я считаю, что это на самом деле дает более медленное воспринимаемое время отклика, что мне не нравится вообще. Я люблю ajax, но не люблю его для полностраничных материалов.
Его долгая история битв между браузером и спецификацией, которые заканчивались настоящим беспорядком. Мы, как разработчики, понимаем это, когда понимаем, что тратим больше времени на решение проблем, связанных с кроссбраузерностью, вместо решения бизнес-логики / проблемы программирования.
+ ve
-ve
Надежд, которая помогла,