Глобальні функції розширюють можливості 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('наостанок'); });
далі ✏