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

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

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

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

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

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