当数据库更新时jquery更新页面

问题描述:

我有一个页面显示插入到mysql数据库中的数据;我希望(如果可能的话)在将记录添加到数据库时自动更新此视图页面(数据不会从同一页面插入或可能从其他用户插入)。当数据库更新时jquery更新页面

在此先感谢 ciao h。

+0

是的,这是可能的,你的问题是什么? – 2010-08-05 13:56:15

+0

我想给出一个示例或关于如何操作的建议,再次感谢 – haltman 2010-08-05 14:00:02

+0

@Viper_Sb,我也希望看到您的方法。没有页面刷新或以固定的时间间隔发出更新的AJAX请求,我不知道你会如何做到这一点。 – blcArmadillo 2010-08-05 14:22:17

第一种方式(最简单但烦人):
向页面添加元刷新,整个页面刷新每x时间。

第二种方式(AJAX):
我假设这是你想要的。

  • 加载默认的HTML页面等...让调用它的index.php
  • 在上述网页创建样式显示一个<的div元素>:没有这样的

    <div id="mydata" style="display: none;"></div> 
    
  • 创建PHP页面,用于检索和格式化数据库数据并以x格式(即表格或p标签)打印出来。没有页眉或页具体的东西不仅仅是数据和简单的标记

  • 在index.php文件把这样的事情

    <script type="text/javascript"> 
        function update() { 
         $.ajax({ 
          url: 'http://www.example.com/getData.php?q=latest', 
          success: function(response) { 
           $('#mydata'.html(response); 
          } 
         }); 
        } 
        // .ready function 
        $(function() { 
         // do setup stuff here, I think there is a refresh timer or something 
         // that you'd use to trigger it every x amount of time 
         // i.e something like this 
         update(); 
        }); 
    </script> 
    

编辑:AJAX HTTP streaming力数据到用户

我知道最好的方法来做到这一点,但快速简单的解决方案将是在页面加载时获取表格中的总行数。然后每个x秒使用一个AJAX脚本来重新检查该表的行数。如果它已经改变,你可以有额外的逻辑,然后获取新的行。

+1

我认为存储最后一个请求的时间戳,然后检查是否有更新的消息比检查消息的总量更有意义(如果有人删除消息f.e.会怎样?) – 2010-08-05 14:39:34

+0

确实,这是实现上述目的的另一种方式。如果您要在记录中存储时间戳,只需在[上次更新时间]之后查询数据库中的任何行。 – 2010-08-05 15:15:55

我思考如果你正在寻找一个事件驱动的系统,那么这个昨晚并且意识到node.js(http://nodejs.org/)可能是完美的。在http://net.tutsplus.com/tutorials/javascript-ajax/learning-serverside-javascript-with-node-js/有一个关于开始使用node.js的很好的教程。