Когда AJAX-запрос выполняется слишком быстро, пользователь не успевает заметить загрузчик — и воспринимает это как ошибку.
Задача: показывать загрузчик минимум 1,5 секунды.
var loaderTimeStart = 0;
var loaderTimer = 1500;
showLoader = function () {
loaderTimeStart = new Date().getTime();
// код для отображения загрузчика
};
hideLoader = function () {
loaderTimeEnd = new Date().getTime();
var time = this.loaderTimeEnd - this.loaderTimeStart;
if (time < this.loaderTimer) {
var t = this.loaderTimer - time;
setTimeout(function () {
// код для скрытия загрузчика
}, t);
return;
}
// код для скрытия загрузчика
};hideLoader() вычисляет разницу между реальным временем запроса и минимумом, и задерживает скрытие на недостающее время.
