Обновлять информацию об онлайне пользователей без перезагрузки страницы раз в минуту

У меня есть сайт на php, и на нем есть личные страницы пользователей. Подскажите, как лучше обновлять информацию из базы данных об их онлайне без перезагрузки страницы раз в минуту?


Ответы (3 шт):

Автор решения: Антон

Для получения количества пользователей онлайн можно сделать endpoint (маршрут в роутере при его использовании) или файл .php, который будет возвращать данную информацию.

Инициировать запрос на обновление можно с помощью JS по таймеру. Посредством AJAX запрашиваем данную информацию. По идентификатору блока находим данный div-блок и заменяем число.

→ Ссылка
Автор решения: Андрей

Если сайт небольшой и пользователей немного, то можно Ajax.

Но на больших сайтах лучше использовать websocket, ибо от Ajax сайт может упасть

→ Ссылка
Автор решения: SOVA

Ajax

$.ajax({
    url: "test.html",
    timeout: 3000, // Раз в 3 секунды отправляет запрос на сервер
    error: function(){
        // При ошибках
    },
    success: function(){
        //Получение данных и обновление статуса
    }
});

В php файле буде отправка запроса в БД о статусе пользователя и полученные данные выводишь.

→ Ссылка