0

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

我可以做一个 setInterval 并让它每 X 分钟刷新一次,但是当站点在选项卡中打开但未使用时,这似乎是不必要的。

我可以将它绑定到诸如 mouseover 之类的事件(我测试过),但是每次鼠标移到 div 上时它都会刷新,并且在大多数情况下是不必要的。(以及在服务器上造成沉重的负载。)

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

有什么我不知道的方法吗?在我的 div 内容来自的页面(我自己的页面位于同一服务器上)上实现的某种方法怎么样,它等待新材料然后将其“推送”到我的 div,而不是我的 div 去和从页面“拉”信息?

4

1 回答 1

0

Facebook 使用保持活动连接来做到这一点。

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

在 PHP 方面,您可以结合使用 sleep() 和无限循环来检查新内容。

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

于 2012-08-20T19:37:06.780 回答