@My1Name

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

В JavaScript нет метода Thread.sleep. Как сделать функцию ping, которая посылала бы серверу сообщение "я онлайн". Например, отправляя пустой запрос через ajax каждую минуту?
  • Вопрос задан
  • 245 просмотров
Решения вопроса 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, который бы "тыкал" клиента. Если клиент отвечает - значит жив ¯\_(ツ)_/¯
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы