Обновлять информацию об онлайне пользователей без перезагрузки страницы раз в минуту
У меня есть сайт на php, и на нем есть личные страницы пользователей. Подскажите, как лучше обновлять информацию из базы данных об их онлайне без перезагрузки страницы раз в минуту?
Ответы (3 шт):
Для получения количества пользователей онлайн можно сделать endpoint (маршрут в роутере при его использовании) или файл .php, который будет возвращать данную информацию.
Инициировать запрос на обновление можно с помощью JS по таймеру. Посредством AJAX запрашиваем данную информацию. По идентификатору блока находим данный div-блок и заменяем число.
Если сайт небольшой и пользователей немного, то можно Ajax.
Но на больших сайтах лучше использовать websocket, ибо от Ajax сайт может упасть
Ajax
$.ajax({
url: "test.html",
timeout: 3000, // Раз в 3 секунды отправляет запрос на сервер
error: function(){
// При ошибках
},
success: function(){
//Получение данных и обновление статуса
}
});
В php файле буде отправка запроса в БД о статусе пользователя и полученные данные выводишь.