Глобальні функції розширюють можливості Ajax. Починаючи з версії jQuery 1.9 всі обробники глобальних подій Ajax jQuery приєднуються до document
.ajaxStart(function(){...}) - виконується на початку першого Ajаx-запиту, якщо в черзі кілька запитів, то виконується тільки один раз
.ajaxSend(function(event, request, settings){...}) - виконується перед кожним запитом, можливо отримати параметри і ідентифікувати функцію
.ajaxSuccess(function(event, xhr, settings){...}) - виконується у разі іспішного виконання запиту, відповідь можно отримати в текстовому або xml вигляді (xhr.responseText або xhr.responseXML)
.ajaxError(function(event, jqXHR, ajaxSettings, thrownError){...}) - виконується у разі помилки
.ajaxComplete(function(event, xhr, settings){...}) - виконується після кожного запиту
.ajaxStop(function(){...}) - виконується один раз після останнього запиту
Приклади
Відправимо одразу два запити, перший на сторінку - demoajax/page5.php, другий на неіснуючу сторінку demoajax/p5.php і повернемо у форматі json
$('#btnglob1').click(function(){
var X = $('#numX').val();
var Y = $('#numY').val();
$.ajax({
type: "POST",
url: "demoajax/page5.php",
data:({x:X, y:Y}),
dataType: "json",
}).done (function(res){
$('#inf1').html(res.n1+'-'+res.n2);
});
$.ajax({
type: "POST",
url: "demoajax/p5.php", // сторінка не існує
data:({x:X, y:Y}),
dataType: "json",
}).done (function(res){
$('#inf2').html(res.n1+'-'+res.n2);
});
});
.ajaxStart(): .ajaxSend(): повернені дані: .ajaxSuccess(): .ajaxError(): .ajaxComplete(): .ajaxStop():
Глобальні функції Ajax
$(document).ajaxStart(function(){
$('#aS1').append('на початку запиту');
});
$(document).ajaxSend(function(event, request, settings){
if(settings.url == 'demoajax/page5.php' || settings.url == 'demoajax/p5.php')
$('#aS2').append('перед запитом: '+settings.url+'<br/>');
});
$(document).ajaxSuccess(function(event, xhr, settings){
if(settings.url == 'demoajax/page5.php' || settings.url == 'demoajax/p5.php')
$('#aS3').append('іспішний запит'+xhr.responseText);
});
$(document).ajaxError(function(event, jqXHR, ajaxSettings, thrownError) {
$( "#aR" ).append( "Помилка: " + ajaxSettings.url );
});
$(document).ajaxComplete(function(event, xhr, settings){
if(settings.url == 'demoajax/page5.php' || settings.url == 'demoajax/p5.php')
{$('#aC1').append('після запиту - ')} ;
});
$(document).ajaxStop(function(){
$('#aS4').append('наостанок');
}); далі ✏