Intereting Posts
Laravel db migration – renameColumn error – запрошено неизвестное имя типа базы данных Что может вызвать прерывистый SQLSTATE Нет таких ошибок файла или каталога из php PDO mysql в Debian Lenny? с использованием завитка с простым хмльдом Отключить параметр адреса доставки в PayPal Express Checkout Разбиение страницы на пользовательский wp_query в WordPress занимает 404 страницы ошибок Рекомендации: безопасный метод хранения паролей в таблице? Не удалось подключиться к внешней базе данных SSL Postgres с Debian (ошибки разрешения сертификата) Обновление laravel-композитора: запрашиваемый PHP-расширение dom отсутствует в вашей системе Специальный символ в XML с помощью PHP Загрузка файла Jquery в базу данных в base64 Разница между вызовом flush () внутри цикла foreach или вне его, какой из них использовать? Отображение данных из массивов в динамической таблице PHP Я не могу сохранить некоторые образы facebook на моем сервере, так как он не понимает файл Условная помощь PHP Элементы CakePHP не обновляют таблицу

Как сделать опрос базы данных в реальном времени в MySQL / PHP?

У меня есть Ruby-скрипт, который постоянно обновляет базу данных MySQL. Я хочу показать « mysql_num_rows() » в реальном времени. Так как запись вводится в базу данных с помощью скрипта Ruby, я хочу, чтобы PHP-скрипт обновлял свой счетчик mysql_num_row () в реальном времени.

Я попытался использовать <meta http-equiv="refresh" content="5"> , но я не думаю, что это лучшее решение.

Есть ли у кого-то лучшее решение?

Используйте JavaScript на странице, чтобы периодически звонить на сервер и получать некоторые данные. Используя библиотеку jQuery для кросс-браузерной поддержки AJAX, вы просто выполните следующее:

 jQuery(function($){ setInterval(function(){ $.get( '/getrows.php', function(newRowCount){ $('#rowcounter').html( newRowCount ); }); },5000); // 5000ms == 5 seconds }); 

Это сделает запрос на ваш сервер каждые 5 секунд и приложит результат к тому, что вы отправите обратно в элемент с идентификатором rowcounter , например

 <p>There are <span id='rowcounter'>xx</span> rows in the DB.</p> 

Я бы использовал программу обновления ajax, чтобы отслеживать страницу, на которой выводится ваш mysql_num_row (). Прототип будет хорошим решением: http://www.prototypejs.org/api/ajax/updater

С только PHP и javascript единственный способ – постоянно проверять наличие обновлений, хотя wajiw правильно, что маршрут ajax будет менее навязчивым / шумным, чем полное обновление страницы.

Для получения обновлений по мере их поступления потребуется приложение (или апплет) с постоянным соединением в порту / сокете.

Если у вас будет большое количество посетителей, лучше сохранить номер строки в статическом файле с помощью отдельного скрипта, выполняемого cron (или запустить ваш скрипт в бесконечном цикле на сервере). Затем покажите номер из этого статического файла с помощью JS, как предположил Фрогз. В противном случае вы можете превзойти границы соединений mysql очень быстро.

Опрос никогда не может быть в реальном времени!

Однако Джаггернаут выглядит так, как будто он отвечает вашим требованиям: http://juggernaut.rubyforge.org здесь

Но вам нужна вспышка на стороне клиента.