如何有效地使用ajax自动刷新?

时间:2012-08-20 19:32:13

标签: php ajax

我希望自动刷新Facebook主页。我已经实现了Ajax代码,但我想知道什么是刷新的最佳方法。

我可以做一个setInterval并让它每隔X分钟刷新一次,但是当网站在标签中打开但没有使用时,这似乎是不必要的。

我可以将它绑定到像mouseover这样的事件(我测试过)但是每当鼠标移过div时它就会刷新,并且大部分都是不必要的。 (以及在服务器上创建大量负载。)

我认为理想的情况是当有鼠标悬停时,它检查上次更新的时间,如果超过X分钟,则进行刷新。我认为这是上述两种方法的组合。

有没有我不知道的方法?如何在我的div内容来自的页面上实现的某种方法(我自己的页面位于同一服务器上),等待新材料然后“推”到我的div,而不是我的div去从页面“拉”信息?

1 个答案:

答案 0 :(得分:0)

Facebook使用保持连接方式进行。

这意味着,ajax请求将通过Keep-Alive标头发送到服务器。它将保持活动状态直到新内容可用,然后服务器返回响应并关闭连接。一旦发生这种情况,将建立新的保持连接等。

在PHP方面,你可以将sleep()与无限循环结合使用来检查新的conent。

但是,我不知道这对你的服务器的cpu使用有多大影响......