@My1Name

Как сделать функцию ping?

В JavaScript нет метода Thread.sleep. Как сделать функцию ping, которая посылала бы серверу сообщение "я онлайн". Например, отправляя пустой запрос через ajax каждую минуту?
  • Вопрос задан
  • 244 просмотра
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Get-Web
@Get-Web Куратор тега JavaScript
Front-End Developer
setIntrval не самое лучшее решение так как, если пользователь перейдет на другую вкладку или свернет браузер, то вызовы могут накапливаться и выполняться одновременно, когда пользователь вернется.

Лучше использовать setTimeout:
function ping(url, fn) {
  fetch(url);
  setTimeout(fn, 10000, url, fn);
}

ping("https://google.com", ping);

Можно сделать повторный вызов уже после ответа с сервера, причем не важно удачный или нет:
function ping(url, fn) {
  fetch(url).then((response) => {
    setTimeout(fn, 10000, url, fn);
  });
}

ping("https://google.com", ping);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
NikFaraday
@NikFaraday
Student full-stack Developer
Я вообще лучше бы использовал какой-то SignalR, который бы "тыкал" клиента. Если клиент отвечает - значит жив ¯\_(ツ)_/¯
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Decart IT-production Москва
от 180 000 до 230 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
от 200 000 до 600 000 ₽
15 апр. 2024, в 09:15
1200 руб./за проект
15 апр. 2024, в 07:55
5000 руб./за проект
15 апр. 2024, в 04:12
1 руб./за проект