Как я делаю опрос базы данных в реальном времени в MySQL / PHP? - PullRequest
3 голосов
/ 17 ноября 2010

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

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

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

Ответы [ 5 ]

3 голосов
/ 17 ноября 2010

Используйте 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>
1 голос
/ 17 ноября 2010

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

0 голосов
/ 17 ноября 2010

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

0 голосов
/ 17 ноября 2010

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

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

Но вам понадобится прошивка на стороне клиента.

0 голосов
/ 17 ноября 2010

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

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

...