При работе с Ajax популярным способом указать пользователю, что запрос Ajax выполняется, является отображение счетчика загрузки или сообщения с некоторой анимацией, например «Загрузка … Подождите».
Вы можете создать предварительный загрузчик с помощью методов jQuery ajaxStart() и ajaxStop().
Давайте попробуем следующий пример, чтобы понять, как это работает:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery Create a "Please Wait, Loading..." Animation</title>
<style>
.overlay{
display: none;
position: fixed;
width: 100%;
height: 100%;
top: 0;
left: 0;
z-index: 999;
background: rgba(255,255,255,0.8) url("loader.gif") center no-repeat;
}
/* Отключить полосу прокрутки, когда основной элемент имеет класс loading */
body.loading{
overflow: hidden;
}
/* Сделать изображение счетчика видимым, когда элемент body имеет класс loading */
body.loading .overlay{
display: block;
}
</style>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
// Инициируем запрос Ajax нажатием кнопки
$(document).on("click", "button", function(){
$.get("customers.php", function(data){
$("body").html(data);
});
});
// Добавляем/удаляем класс загрузки в элемент body на основе статуса запроса Ajax
$(document).on({
ajaxStart: function(){
$("body").addClass("loading");
},
ajaxStop: function(){
$("body").removeClass("loading");
}
});
</script>
</head>
<body style="text-align: center;">
<button type="button">Get Customers Details</button>
<p>Click the above button to get the customers details from the web server via Ajax.</p>
<div class="overlay"></div>
</body>
</html>
Файл «customers.php» в приведенном выше примере просто возвращает сведения о клиентах, такие как имя, адрес, страна и т. д. из базы данных в табличном формате.

















