如何制作一个不断更新的页面?

Moe*_*Moe 5 javascript php ajax comet

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

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

此外,每 3 秒调用一次脚本对我的服务器来说是相当费力的,尤其是当很多人都在同一页面上时。

我一直在寻找类似 PHP 推送通知的东西。虽然这看起来很牵强,但我正在寻找一些东西,当有人将某些内容上传到网站时,上传脚本会告诉提要页面进行更新。

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

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

Nul*_*ion 3

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

轮询又称为定期刷新

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

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

HTTP 流又名“彗星”

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