Автоматическое обновление при поступлении нового пользователя

У меня есть таблица в базе данных, которая включает всех активных пользователей. Затем у меня есть список пользователей, который нуждается в обновлении, чтобы узнать, кто из последних пользователей онлайн. Каков наилучший способ справиться с этим? Список пользователей – это всегда тот, кто находится в таблице active_users. Спасибо за прочтение.

AJAX

Вы можете использовать запрос AJAX, чтобы регулярно выворачивать список активных пользователей и отображать их на своем веб-сайте.

Возможно, вам захочется кэшировать этот список на некоторое время на вашем сервере, если у вас есть много пользователей, запрашивающих его постоянно.

Или, если список длинный или если вы решите вытащить много разметки HTML вместе со списком, вы также можете регулярно опробовать ваш сервер, чтобы проверить, есть ли обновления в списке (кэшированные …) с момента последнего клиент обновил список. Ответ будет простым истинным или ложным, и клиенту будет нужно только запрашивать новый список, когда он изменился.


Метатег обновления

Вы также можете использовать тег meta refresh , чтобы обновить всю страницу или iframe, если вы не возражаете против iframe.

Обновить через минуту:

<meta http-equiv="refresh" content="60" /> 

Или с URL:

 <meta http-equiv="refresh" content="60;url=http://site.com/list.php?counter=1" /> 

Ручное обновление

Наконец, вы можете просто добавить кнопку или просто ссылку в конце списка, и пользователь может решить, нужно ли перезагружать или нет.


Другие соображения

Как отметил JoeGeeky в комментариях, по причинам производительности и пропускной способности , вы можете захотеть реализовать счетчик, который ограничивает максимальное количество раз, когда пользовательский список загружается. Это справедливо для тегов обновления Ajax и Meta. В javascript вы можете просто иметь переменную приращения при каждом загрузке списка, а в случае тега meta refresh вы можете добавить счетчик в url как переменную get.

Кроме того, эти три подхода не исключают друг друга, но должны быть объединены : используйте Ajax для людей с активированным javascript, мета обновите iframe в теге noscript как резерв для тех, у кого отключен javascript (как упоминалось стагами ), и кнопку или ссылку для обновления вручную, как только достигнут максимальный уровень перезагрузки списка.

Если ваш список пользователей короток, например, вы просто показываете последних пяти пользователей, я бы пошел с простым опросом с Ajax на PHP-скрипт, который возвращает эти данные.

Вы можете настроить опрос в соответствии с вашими потребностями,

 $(document).ready(function () { function refreshUserlist () { $.ajax({ url: "user_list.php", success: function (data) { // code to refresh your website with the info out of data setTimeout(refreshUserlist, 5000); } }); } refreshUserlist(); }); 

Проще всего я могу думать, что вы можете создать простую страницу php, в которой перечислены данные, и использовать функцию jQuery .load () для загрузки этого html-ответа php в div

$ ( "# DIVID") нагрузка ( "активный-users.php").

Сделайте php-скрипт для извлечения списка активных_записей и верните список <ul> . Затем используйте jQuery и setInterval() для извлечения этого списка с помощью $.ajax() и замените список каждые 1-2 минуты или $('#active_user_list').html(new_list_data) . Вот как это выглядит (непроверено):

 setInterval(function() { $.ajax({ url: 'script_to_fetch_active_users_list.php', success: function(new_list_data) { $('#active_user_list').html(new_list_data); } }); }, 1000*120); 

PHP-скрипт зависит от вас …