Задать вопрос
Ivan-P
@Ivan-P

Как показывать спиннер только при длительной загрузке?

На всех страницах SPA стоит спиннер, но иногда данные приходят быстро и спиннер только раздражает. Как сделать чтобы его отображение было только про загрузке данных больше n-времени.
  • Вопрос задан
  • 906 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
Показывайте его через определенный промежуток времени. Например, через две секунды.
setTimeout(function() {
    initSpinner();
}, 2000);
Ответ написан
AMar4enko
@AMar4enko
Наперед посчитать не получится, если только вы не Ванга :D
Реализуйте простую логику - показываем спиннер через 300 мс., если за это время не пришел ответ.
Если ответ приходит позже, а спиннер уже отображается, то делаем принудительную задержку, чтобы спиннер отображался не менее N мс.

0мс - отправили запрос
300мс - ответа нет, включаем лоадер
350мс - пришел ответ, лоадер активен, минимальное время отображения лоадера 400мс, откладываем обработку полученных данных на 400 - (350-300) = 350мс
700мс - скрываем лоадер, обрабатываем данные (вываливаем в скоуп и.т.д)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы