从服务器文件不断更新HTML元素

时间:2013-10-30 22:07:38

标签: javascript jquery ajax

我有一个人们可以提交评论的网站。注释将写入服务器上的COMMENTS文件。从单独的页面,我可以将文件加载到Div中并查看注释。

我现在想要的是Div显示评论为“现场”。我正在阅读Div时出现的任何新评论会自动显示在底部。

所以看起来我需要某种连续打开的ajax-load,其中调用的PHP脚本会持续监视COMMENTS文件上的时间戳,如果时间戳发生变化,则会再次将其复制到客户端。

我想知道是否有更好的方法可以做到这一点,或者是否有一些可能已经完成。

感谢任何想法。

3 个答案:

答案 0 :(得分:3)

你要么必须做一些非常耗费资源的事情,要么你必须熟悉node.js和socket.io等工具才能真正实时更新。

参考文献:
http://www.nodejs.org
http://www.socket.io
http://net.tutsplus.com/tutorials/javascript-ajax/using-node-js-and-websockets-to-build-a-chat-service/

答案 1 :(得分:0)

您可以设置计时器事件以检查新评论并发布是否更新...

timer = setInterval(function() 
    { $.ajax( "getComments.php" )
           .done(function(data) {
                 ("#comments").innerHTML = data;
           })
    }, seconds*1000);

答案 2 :(得分:0)

如果你不想在你的服务器上安装node.js并按照@ReQwire的建议实现套接字,你可以通过轮询一个单独的资源来减轻用户的负担,比如/comments?article=articleUID&since=timestamp(时间戳由服务器提供的最后一个时间戳确定 - 否则您可能会在服务器和用户的时间配置之间产生时间差异),然后附加任何&#39 ; s返回:此服务将查看该文章的comments文件,并仅返回timestamp之后收到的评论。这会降低数据包权重,因此您将主要收到空响应,或者至少只收到新内容。