当新行添加到表中时,使用AJAX更新页面


Use AJAX to update page when new row is added to table

我正在学习AJAX,因为我当前的项目需要它。我有一个提要,当一个新行被添加到MYSQL表时,我想实时更新它。事实上,我已经用node.js做到了这一点,但不幸的是,我的客户端服务器不能使用node,所以我正在尝试用AJAX看看这是否可行。

谢谢你的帮助!

我不知道MYSQL或PHP在页面更新时可以在哪里向页面推送更新。

最好的选择可能是使用javascript运行计时器,并定期检查数据库,看看是否有任何更新,

var refreshId = setInterval(function() { checkforUpdates(lastIndex) }, 10000);

将表索引的最后一行传递给javascript函数,该函数会对PHP进行ajax调用,该PHP会查询数据库中的任何新行,如果返回任何更新,请使用javascript将它们添加到表中。

如果您还想检查更新的行,那就有点棘手了!

您需要让客户端通过轮询不断联系服务器,或者使用诸如comet或websockets之类的推送技术。否则,您的客户无法知道新数据何时到达。

Comet和websockets允许对流程进行最实时的感知,因为它们实际上会在数据可用时立即将数据发送到用户客户端(连接的浏览器),而在轮询时,它只是你的浏览器每隔一段时间查询服务器。

缺点是,推送技术,当然还有需要HTTP Keep Alive的comet,可能会对服务器造成很大的负担,尤其是对于基于进程的服务器,如apache,它们的最大连接很快就会被填满,然后一直保持到断开连接。它有调整选项和现代设置,但不是最佳的:这个问题甚至有一个官方名称c10k,这也是你看到基于事件的服务器近年来越来越受欢迎的原因之一。

使用jquery 更容易进行ajax操作

$("#update_charges").live("click",function() {
     $.ajax(    
         {      
            type: "POST",
            url: "phpfile_toadd_updaterecord.php",
            data: "passvalue="+$('input_field_name').val(),
            success: function(msg)
           {
                            $('#result_div').html(msg); //msg contains any test echoed  from  //phpfile_toadd_updaterecord.php file
           }    
     });//end $.ajax    
 }

下面可以是你的html代码

<form>
<div id="result_div"></div>
<input type="button" name="update_charges" id="update_charges" />
<input type="hidden" name="input_field_name" id="input_field_name" value="anyvalue_to be passed to php file"/>
</form>

Jquery ajax帮助页面