代码之家  ›  专栏  ›  技术社区  ›  ethicalhack3r

如何在MySQL/PHP中进行实时数据库轮询?

  •  3
  • ethicalhack3r  · 技术社区  · 14 年前

    我有一个不断更新MySQL数据库的Ruby脚本。我想让你看看“ mysql_num_rows() “实时。因此,当Ruby脚本将一个条目输入数据库时,我希望PHP脚本实时更新其mysql_num_row()计数。

    我试着用 <meta http-equiv="refresh" content="5">

    有没有更好的解决方案?

    5 回复  |  直到 14 年前
        1
  •  3
  •   Phrogz    14 年前

    在页面上使用JavaScript定期调用服务器并获取一些数据。使用 jQuery 对于AJAX的跨浏览器支持库,您只需执行以下操作:

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

    这将每隔5秒向服务器发出一个请求,并将发送的结果粘贴到id为的元素中 rowcounter ,例如。

    <p>There are <span id='rowcounter'>xx</span> rows in the DB.</p>
    
        2
  •  1
  •   wajiw    14 年前

    我将使用ajax更新程序不断轮询打印mysql\u num\u row()的页面。原型将是一个很好的解决方案: http://www.prototypejs.org/api/ajax/updater

        3
  •  0
  •   jon_darkstar    14 年前

    需要一个端口/套接字上有固定连接的应用程序(或小程序)才能获得更新。

        4
  •  0
  •   Qwerty    14 年前

    若您将有大量的访问者,那个么最好使用cron运行的单独脚本(或者在服务器上无限循环地运行脚本)将行数存储到静态文件中。然后用JS显示这个静态文件中的数字,就像Phrogz建议的那样。否则,您可以很快超过mysql连接限制。

        5
  •  -2
  •   James Anderson    14 年前

    投票永远不会是实时的!

    http://juggernaut.rubyforge.org here

    但是您需要在客户端使用flash。