Вот подход, который я использовал в моем Flask проекте.
У меня есть загрузчик, который я включаю на страницах, где я хочу показать такого рода сообщения. Я помещу что-то вроде этого в нижней части шаблона:
{% include "loading-modal.html" %}
Содержание может быть любым, что вы хотите. Это может быть просто сообщение / предупреждение или какая-то анимация. Я включил ссылки внизу простых анимаций.
Стиль этого загрузчика будет включать:
display: none;
Таким образом, загрузчик не отображается для пользователя. Затем при запуске функции ajax я сделаю загрузчик видимым примерно следующим образом:
var loader = document.getElementById('loading-bg');
loader.style.display = 'block';
Это сделает загрузчик видимым до тех пор, пока я снова не спрячу его или перенаправлю пользователя на любую страницу. они идут к следующему. Я не буду прятать модал снова, пока все, что происходит в фоновом режиме, не вернет результат моей функции ajax.
Этот подход предполагает, что вам не нужно предоставлять какую-то индикацию прогресса. для пользователя, или что вы не можете, потому что вы не можете знать, сколько времени это займет. Это также предполагает, что ваш пользователь не может взаимодействовать с экраном во время работы этого скрипта, потому что я обычно ставлю прозрачность на содержание страницы, которая блокирует все содержимое.
Если вы хотите, чтобы ваш загрузчик включал некоторые Анимация, вот что я использовал раньше:
https://tobiasahlin.com/spinkit/ https://github.com/tobiasahlin/SpinKit
Надеюсь, это поможет.