jQuery значительно облегчает создание AJAX запросов.
ТвитнутьjQuery - это библиотека JavaScript позволяющая ускорить написание кода.
В данной главе мы не будем изучать все возможности, которые предоставляет jQuery, а только рассмотрим связанные с AJAX. Если Вы хотите узнать о jQuery больше, посетите наш jQuery учебник.
Для того, чтобы использовать возможности jQuery ее необходимо вначале подключить. Чтобы сделать это, добавьте код расположенный ниже в head секцию Вашей страницы:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
Создание AJAX запросов на "чистом" JavaScript имеет несколько недостатков:
AJAX запрос созданный с помощью jQuery занимает всего одну строчку кода, и уже оптимизирован для использования и с новыми и старыми версиями браузеров.
Синтаксис:
$("селектор").load(url,данные,функция)
селектор выбирает элемент, в котором будет отображен результат AJAX запроса.
url адрес, на который будет отправлен AJAX запрос.
данные является необязательным параметром. Данные, которые будут переданы вместе с запросом.
функция является необязательным параметром. Функция, которая будет вызвана после выполнения запроса.
Пример
$(document).ready(function(){ $("#but1").click(function(){ $("#par1").load("testfile.txt"); }) });
В примере ниже мы пересылаем скрипту add.php переменную x со значением 4 и переменную y со значением 5 он в свою очередь принимает эти переменные, производит их сложение и отправляет результат обратно.
Пример
$(document).ready(function(){ $("#but1").click(function(){ $("#par1").load("add.php","x=4&y=5"); }) });
Сопровождающие функции позволяют выполнять различный код в зависимости от состояния выполнения AJAX запроса.
Функция ajaxSend() выполнит переданный в нее код во время отправления AJAX запроса.
Функция ajaxComplete выполнит переданный в нее код, когда выполнение AJAX запроса будет завершено, при этом неважно произошла при этом ошибка или нет.
Пример
$(document).ready(function(){ $("#par1").ajaxSend(function(){ $("#img1").css("display","block"); }) $("#par1").ajaxComplete(function(){ $("#img1").css("display","none"); }) $("#but1").click(function(){ $("#par1").load("add.php","x=10&y=100"); }) });
Функция ajaxSuccess выполнит переданный в него код, если выполнение AJAX запроса будет завершено успешно.
Функция ajaxError выполнит переданный в него код, если выполнение AJAX запроса будет завершено с ошибкой.
Пример
$(document).ready(function(){ $("#par1").ajaxSend(function(){ $("#img1").css("display","block"); }); $("#par1").ajaxComplete(function(){ $("#img1").css("display","none"); }); $("#par1").ajaxError(function(){ alert("Выполнение AJAX запроса завершено с ошибкой."); }); $("#par1").ajaxSuccess(function(){ alert("AJAX запрос успешно выполнен!"); }); $("#but1").click(function(){ $("#par1").load("add.php","x=10&y=100"); }); $("#but2").click(function(){ $("#par1").load("abb.php","x=10&y=100"); }); });
Высокоуровневые методы создания AJAX запросов, перечисленные ранее на данной странице, подходят для создания большей части запросов, но иногда их функциональности становится недостаточно.
Низкоуровневые AJAX запросы предоставляют более широкую функциональность, но более сложны в использовании.
Синтаксис высокоуровневого AJAX запроса:
$("#par1").load("add.php","x=4&y=5")
Синтаксис аналогичного низкоуровневого AJAX запроса:
Пример
$.ajax({ url:"add.php", data:"x=4&y=5", success:function(result){ $("#par1").html(result) } });
Обратите внимание: полный список всех существующих методов jQuery для создания AJAX запросов с примерами использования Вы найдете в нашем jQuery справочнике.
Задание 1 реализуйте подпункты перечисленные ниже путем добавления на страницу соответствующего jQuery кода: