如何不断更新页面?

时间:2010-09-14 22:46:19

标签: php javascript ajax comet

我正在尝试在我的网站上创建一个页面,用于显示实时中新上传的项目。

我认为每隔3秒调用一次 Ajax脚本将是解决此问题的最佳方式,但是我的网站通常不会获得新上传的项目。它也是如此可变,在30秒到1小时之间!

此外,每隔3秒调用一次脚本对我的服务器来说非常好,特别是如果很多人在同一页面上。

我正在寻找像PHP的推送通知之类的东西。虽然看起来很牵强,但我正在寻找一些东西,当有人向网站上传内容时,上传脚本会告诉Feed页面更新。

我看到了一个名为COMET的东西 - 虽然阅读文章/教程让我更加困惑。

那么,实现不断更新的页面的最佳方法是什么?

1 个答案:

答案 0 :(得分:3)

在服务器端,您需要一个脚本,可以根据时间戳(例如:上次请求)判断是否有新内容(例如:新文件)。在客户端,您有两种选择:

Polling aka Periodic Refresh

这基本上意味着让客户端定期轮询服务器以检查是否有新数据。您想要的是尽可能保持您的请求和响应。如果在单独的进程中运行处理这些请求的脚本,它也会有所帮助。

您可以将间隔调整为服务器和用户都可接受的间隔。您还可以使用Heartbeat来判断用户是否仍处于活动状态,因此如果用户将窗口保持打开但计算机已关闭,则可以停止轮询服务器。

HTTP Streaming aka "Comet"

使用此功能需要更多设置;但这基本上是从客户端到服务器的长期连接,服务器可以在必要时将内容“推送”到客户端。