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

2
sark9012 29 Май 2010 в 13:16

4 ответа

Лучший ответ

AJAX

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

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

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


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

Вы также можете использовать мета-тег обновления , чтобы обновить всю страницу, или 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 вы можете просто иметь переменную, увеличивающуюся при каждой загрузке списка, и в случае мета-тега обновления вы можете добавить счетчик в URL как переменную get.

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

3
Community 23 Май 2017 в 12:07

Создайте скрипт php, чтобы получить список active_users и вернуть список <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 зависит от вас ...

0
stagas 29 Май 2010 в 09:34

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

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

1
emre 29 Май 2010 в 09:43

Например, если ваш список пользователей короткий, вы просто отображаете последних пяти пользователей, я бы пошел с простым опросом 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();
});
2
Francisco Soto 29 Май 2010 в 09:30