В основе AJAX функциональности лежит функция .ajax(). Она позволяет решать любые задачи, связанные с использованием XML HTTP Requests (XHR). Тем, кто уже обладает некоторым опытом работы с AJAX, будет приятно узнать, что в jQuery форме эта функция избавляет разработчика от необходимости установки условного оператора if/else для тестирования поддержки объекта XMLHTTPRequest, (если он не поддерживается, то можно протестировать поддержку ActiveXObject для IE).
Использование функции .ajax()
Давайте бросим беглый взгляд на некоторую функциональность, доступную в функции .ajax():
jQuery.ajax({
type: //"GET" или "POST",
url: //"url/to/file.php",
dataType: //"script", "xml", "json" или "html"
data: //строковый запрос "name=FileName&type=PDF"
beforeSend://функция обратного вызова
function(){
alert("Starting Request");
}
success: //функция обратного вызова
function(){
alert("Request successful");
}
complete: //функция обратного вызова
function(){
alert("Request complete");
}
error: //функция обратного вызова
function(){
alert("Request returned and error!");
}
});
...
К примеру, реализованный в пределах WordPress вызов .ajax() может выглядеть следующим образом:
...
jQuery(".ajaxIt").click(function(){
//.ajaxIt это класс, присвоенный ссылке в первой записи
jQuery.ajax({
//url, ведущий на страницу About:
url: "/wp-jquery/about/",
data: "html",
success: function(data){
//ограничим переполнение и установим высоту первой записи
jQuery('.post:first')
.css({overflow: "hidden", height: "310px"})
//добавляем данные
.html(data);
//сообщение, которое будет показано в тот момент, когда функция начала свою работу
alert('loaded up content');
}
});
});
...
В представленном коде, когда пользователь совершает щелчок по объекту .ajaxIt, функция загружает всю страницу About целиком в первую запись, как это видно на следующих скриншотах:
С помощью изменения CSS свойств, отвечающих за высоту записи и ее переполнение, мы можем предотвратить искажение страницы.
Мы выполнили первый небольшой проект, связанный с AJAX в WordPress. Однако вам, скорее всего, пришла в голову следующая мысль: «Это усовершенствование я вряд ли стал бы использовать на своих сайтах». Действительно, зачем кому-то понадобится загружать страницы сайта в записи?
Вы правы. Этот проект представлен исключительно для ознакомления. Однако мы не будем на нем задерживаться. Давайте пойдем дальше и взглянем на более доступную и полезную функциональность.
Связанные материалы:




