AJAX с помощью jQuery. Руководство для начинающих. Часть 2
В предыдущем уроке серии мы дали общее определение технологии AJAX и рассмотрели простой пример с использованием метода $.get()
. Теперь продвинемся дальше и посмотрим, что еще можно делать с помощью AJAX и как.
Делаем запрос POST с помощью метода $.post()
В то время как метод $.get()
позволяет делать запросы AJAX с помощью метода HTTP GET, метод $.post()
реализует запросы с помощью метода HTTP POST. Синтаксис вызова аналогичен методу $.get()
.
Например, изменим нашу демонстрацию с передачей прогноза погоды из предыдущего урока на использование метода $.post()
:
$.post( "getForecast.txt", data, success, "json" );
Пробуем запустить демонстрацию и получаем такое же окно, как и в предыдущем уроке.
Метод HTTP POST обычно используется для отправки данных формы. Причина заключается в том, что метод GET позволяет отправлять небольшие объемы данных (обычно несколько сот символов), а метод POST может пересылать столько данных, сколько вам нужно. Поэтому, если требуется переслать большой объем данных в запросе AJAX, используйте метод $.post()
.
Загрузка разметки на страницу с помощью метода load()
Очень удобный метод jQuery load()
позволяет легко получать разметку HTML с сервера через AJAX и вставлять ее автоматически в текущую страницу. Если скрипт серверной стороны выполняет всю работу по обработке данных и формированию разметки, и вы хотите только вывести результат на странице, то вам нужно использовать метод load()
.
В простейшем случае вы можете вызвать метод load()
следующим образом:
$('#myElement').load( url );
Данный пример делает запрос AJAX по адресу url
, получает разметку с сервера и замещает ею содержание элемента #myElement
.
Также можно передать данные в запросе, также как и в методах $.get()
и $.post()
:
var data = { city: "Васюки", date: "20120318" }; $('#myElement').load( url, data );
Модифицируем наш пример с прогнозом погоды так, чтобы сервер создавал разметку для передаваемых данных. Затем вызовем метод load()
для отображения полученной разметки на странице. Сначала сохраним следующую разметку в файле getForecast.html
на сервере:
<h2>Прогноз погоды в Васюках</h2> <h3>18 марта 2012</h3> <p>Будет мерзко холодно, сыро и слякотно. Макисмальная температура: 1C.</p>
getForecast.html
имитирует эффект выполнения скрипта на стороне сервера и возвращает разметку с прогнозом погоды.
Теперь сохраняем следующий код в файле showForecast.html
в той же папке, что и getForecast.html
:
<!doctype html> <html lang="ru"> <head> <title>Прогноз погоды</title> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> </head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <script> $( function() { $('#getForecast').click( function() { var data = { city: "Васюки", date: "20120318" }; $('#forecast').load( "getForecast.html", data ); } ); } ); </script> </head> <body> <button id="getForecast">Получить прогноз погоды</button> <div id="forecast"></div> </body> </html>
Пробуем запустить демонстрацию и наслаждаемся результатом работы запроса AJAX.
Вот как работает код примера:
- Страница содержит элемент
div
с идентификаторомforecast
, в котором будет размещаться разметка прогноза. - Обработчик события
click
для кнопкиgetForecast
формирует данные для отправки на сервер. - Затем обработчик выбирает
#forecast
div
и вызывает метод jQueryload()
, передавая URL (getForecast.html
) и объект с данными. - jQuery выполняет AJAX запрос к файлу
getForecast.html
. Когда браузер получает ответ , jQuery автоматически замещает содержание элемента#forecast
полученной разметкой.
Одной из причин того, что метод load()
легко использовать является то, что не нужно писать возвратную функцию для обработки ответа - jQuery все делает для вас. Но если вам требуется производить какие-нибудь действия после того, как разметка вставлена, вы можете передать "полноценную" возвратную функцию в качестве третьего аргумента методу load()
.
Загрузка части страницы
Иногда сервер может вернуть больше разметки, чем нужно. Например, вы запрашиваете статью с сервера, чтобы вставить текст на свою страницу, но весь документ вам не нужен.
Метод jQuery load()
позволяет легко ограничивать объем полученной разметки. Нужно просто добавить пробел после запроса URL, за которым будет следовать селектор для выбора нужной части страницы. jQuery получит всю страницу через AJAX, но только нужная часть разметки будет вставлена в текущий код.
Например:
$('#articleContainer').load( "newArticle.html #articleBody" );
Так можно получать новые страницы с сервера. Не нужно будет перегружать каждый раз страницу. Также можно выводить сообщение о загрузке для посетителя, чтобы он был в курсе происходящего. Например, можно добавить сообщение"Загрузка, подождите!" в контейнер #articleContainer
, затем вызвать метод load(),
чтобы загрузить новое содержание в #articleContainer
. Как только новая разметка будет получена , сообщение будет автоматически замещено.
Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/4TLpDy186rg/lessons.php
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2024-04-17 » 23 сервиса для эффективного экспресс-аудита любого сайта
- 2024-04-08 » Яндекс переходит на новую версию Wordstat
- 2024-04-08 » Яндекс интегрировал в свой облачный сервис эмпатичную нейросеть
- 2024-04-08 » Новая версия нейросети Claude превзошла по мощности аналоги Google и OpenAI
- 2024-04-08 » Как пользоваться GPT 4 и Claude бесплатно и без VPN
- 2024-03-13 » Стратегии SEO на 2024 год
- 2024-03-13 » Как использовать анимацию с помощью JavaScript-библиотеки GSAP
- 2024-03-13 » Использование GSAP 3 для веб-анимации
- 2024-03-13 » Cогласование топографической съёмки с эксплуатирующими организациями
- 2024-02-19 » Теряются лиды? Как настроить сквозную аналитику
- 2024-02-17 » Мерч и IT: на что обратить внимание в 2024 году
- 2024-02-16 » Копируем с RSync: основные примеры синхронизации файлов
- 2024-02-15 » Лучшие noCode AI платформы для создания диалоговых ботов
- 2024-02-14 » Факторы ранжирования Google 2024 — исследование Semrush
- 2024-02-12 » Перенос сайта на другой хостинг
- 2024-02-05 » В России сформирован реестр хостинг-провайдеров
- 2024-02-04 » Использование SSH для подключения к удаленному серверу Ubuntu
- 2024-02-03 » Подключаемся к серверу за NAT при помощи туннеля SSH. Простая и понятная инструкция
- 2024-02-02 » Настройка CI/CD для Gitlab-репозитория: схемы и гайд по шагам
- 2024-02-01 » GitLab CI Pipeline. Запуск сценария через SSH на удаленном сервере
- 2024-01-29 » Introduction to GitLab’s CI/CD for Continuous Deployments
- 2024-01-26 » Настройка GitLab CI/CD
- 2024-01-25 » Установка shell gitlab runner
- 2024-01-25 » Установка и регистрация gitlab-runner в docker контейнере
- 2024-01-25 » Переменные Gitlab-Ci
- 2024-01-25 » Настройка CI/CD в GitLab для синхронизации проекта с веб-серверами
- 2024-01-25 » Копирование файлов scp
- 2024-01-21 » Бездепозитные бонусы от казино: обзор условий и правил использования
- 2024-01-18 » Современная обработка ошибок в PHP
- 2024-01-18 » Пример шаблона проектирования MVC в PHP
"Я думаю, что много людей первоначально думало, что "e" в электронной коммерции было более важным, чем бизнес." |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.