自动更新页面的代码大纲

时间:2010-02-21 21:46:12

标签: php javascript long-polling

我想搞乱实时信息,我想要复制一个非常标准的功能:

当你在单个问题视图上输入答案时,会出现在这里,并且会弹出一个警告,上面写着“有3个新闻答案,点击显示”

它也出现在Twitter上“此搜索中有5条新推文:点击更新”

我非常精通服务器和客户端代码,而我正在寻找的是基本的大纲(甚至不是伪代码,但也许是简单的英语),就像这样的事情发生了。

服务器上每分钟运行一次CRON作业,是否会向页面上长轮询的AJAX位发出信号?

页面本身是否会轮询服务器?

欢迎任何和所有解决方案。谢谢!

3 个答案:

答案 0 :(得分:1)

从我的头脑中,我通过javascript设置它 - 设置超时来质疑服务器。这只是一个有根据的猜测。

答案 1 :(得分:1)

您可以使用Javascript setTimeout方法定期使用在客户端运行的AJAX调用来实现该操作。您将拥有一个调用服务器端方法的Javascript函数,该方法检查是否发生了更新,显示任何更新,然后调用setTimeout来调用自身。

伪代码:

function updateCheck()
{
  //make ajax call
  //do something if any update has occurred
  setTimeout("updateCheck()", 10000); //second param is in milliseconds
}

答案 2 :(得分:0)

看起来SO使用定期更新程序向网址发出ajax请求,如:

https://stackoverflow.com/posts/2307584/answer-activity-heartbeat

这将返回JSON结果:

{"Result":false,"Count":0}

当一个新答案存在时,这是一个结果的例子:

{"Result":true,"Count":1}