我有一个人们可以提交评论的网站。注释将写入服务器上的COMMENTS文件。从单独的页面,我可以将文件加载到Div中并查看注释。
我现在想要的是Div显示评论为“现场”。我正在阅读Div时出现的任何新评论会自动显示在底部。
所以看起来我需要某种连续打开的ajax-load,其中调用的PHP脚本会持续监视COMMENTS文件上的时间戳,如果时间戳发生变化,则会再次将其复制到客户端。
我想知道是否有更好的方法可以做到这一点,或者是否有一些可能已经完成。
感谢任何想法。
答案 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
之后收到的评论。这会降低数据包权重,因此您将主要收到空响应,或者至少只收到新内容。