Ivan-P
@Ivan-P

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

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

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

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

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