0

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

谢谢您的帮助!

4

3 回答 3

0

用 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 帮助页面

于 2012-07-11T06:28:00.567 回答
0

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

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

缺点是推送技术,当然还有需要HTTP Keep Alive的彗星,在您的服务器上可能会非常繁重,特别是对于基于进程的服务器(例如 apache),它们的最大连接会很快被填满,然后一直保持到断开连接。它有调整选项和现代设置,但它不是最佳的:这个问题甚至有一个正式的名称c10k,这也是你看到基于事件的服务器最近变得流行的原因之一。

于 2012-07-11T01:43:50.260 回答
0

我没有任何方法知道 MYSQL 或 PHP 在更新时可以将更新推送到页面的位置。

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

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

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

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

于 2012-07-11T01:50:49.847 回答