12.10.2017, 11:17
|
Аспирант
|
|
Регистрация: 21.10.2016
Сообщений: 34
|
|
Если ожидание больше 2 секунд
Отправляю данные с помощью $.get, но как определить если ответа нет больше 2 секунд, то показывать лоадер, но если придет быстро (допустим за секунду) не показывать лоадер
|
|
12.10.2017, 11:22
|
|
Профессор
|
|
Регистрация: 25.10.2016
Сообщений: 1,012
|
|
var timer = setTimeout(function() {
// тут показываем лоадер
}, 2000);
$.get(url, function(data) {
clearTimeout(timer);
...
});
лоадер всплывет через 2 сек.
|
|
12.10.2017, 12:00
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от Andreysolomon
|
как определить если ответа нет больше 2 секунд
|
Зачем? Показывайте его сразу при инициализации запроса и скрывайте по ответу сервера и ошибках.
|
|
12.10.2017, 13:58
|
Аспирант
|
|
Регистрация: 21.10.2016
Сообщений: 34
|
|
laimas, запрос-ответ обычно занимает около секунды, а теперь представьте, у вас быстрый инет (100мб/с) и вы бродите по сайту. Нажав на какую нибудь кнопку, у вас перед глазами на СЕКУНДУ (!) ПОЯВЛЯЕТСЯ лоадер и тут же скрывается + учитываем то что вы будете открывать много страниц сайта. Ну некрасиво ведь....
|
|
12.10.2017, 14:04
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от Andreysolomon
|
запрос-ответ обычно занимает около секунды, а теперь представьте, у вас быстрый инет (100мб/с)
|
Представил, но только скорость от провайдера еще не означает, что север будет отвечать мгновенно, и причин этому может быть много. И кто вам дал гарантию что если через две секунды ответа не будет, то еще придется ждать две? Отработает ваш таймер, покажет крутилку, а через пол секунды сервер ответит. Это красиво, а вот показалось сразу на секунду, это не красиво?
|
|
12.10.2017, 14:29
|
Аспирант
|
|
Регистрация: 21.10.2016
Сообщений: 34
|
|
laimas, да согласен, но я не хочу показывать крутилку людям с быстрым интернетом, вот и приходится выкручиваться, жаль что в js нет функции, которая рассказала бы о скорости интернета у пользователя.
|
|
12.10.2017, 14:43
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от Andreysolomon
|
жаль что в js нет функции, которая рассказала бы о скорости интернета у пользователя
|
Скорость еще не означает быстрый ответ сервера. Будет сервер занят и чем вам поможет скорость? А если на маршруте какой либо узел глючит? Как-то у вас все просто - если 100 МБс значит все должно летать. Хотелось бы, но увы, у меня скорость большая, но дожидаться ответов этого форума бывает приходится так долго, что успевает борода вырасти.
|
|
12.10.2017, 15:28
|
Аспирант
|
|
Регистрация: 21.10.2016
Сообщений: 34
|
|
laimas, вот думаю: может вообще лоадер убрать, если уж такая ситуация... Ну можно конечно сразу по отправке пакета показывать лоадер, а как ответ пришел, подождать где-то секунду и скрыть его. Таким образом получим нормальный лоадер. Но опять же не идеальный способ. Вообщем, я расстроен....
|
|
12.10.2017, 15:35
|
|
Профессор
|
|
Регистрация: 25.10.2016
Сообщений: 1,012
|
|
Andreysolomon,
Показывай не слишком заметный лоадер где-то с краю или в углу. Чтобы и загрузку можно было увидеть, и не моргало бы сильно, если быстро загрузится.
|
|
12.10.2017, 15:40
|
Аспирант
|
|
Регистрация: 21.10.2016
Сообщений: 34
|
|
Alexandroppolus, нет, это противоречит дизайну сайта, там все попиксельно выравнил, все стараюсь посередине, а тут в углу......... Ну хотя можно попробовать, ладно спасибо за совет
|
|
|
|