扩展PHP/AJAX轮询网站更改的有效方法

扩展PHP/AJAX轮询网站更改的有效方法,php,javascript,ajax,Php,Javascript,Ajax,我们正在使用MySQL数据库创建一个基于PHP的网站。演示者正在投影仪上显示网站。该网站有演示图像和文本以及投票区 使用移动设备的观众可以登录显示当前投票问题的网站,并允许观众近实时地在投票中投票 AJAX在循环中运行,运行的是PHP脚本,查询数据库,以便在演示屏幕上生成接近实时的结果 我希望有某种方法可以使用某种类型的事件监听器来接收某些更改的通知,而不是不断地ping服务器 不幸的是,我们没有一个我可以在这里发布的网站的公众视图,但我想获得一些关于技术的意见和想法,以使其能够扩展,并在投票网

我们正在使用MySQL数据库创建一个基于PHP的网站。演示者正在投影仪上显示网站。该网站有演示图像和文本以及投票区

使用移动设备的观众可以登录显示当前投票问题的网站,并允许观众近实时地在投票中投票

AJAX在循环中运行,运行的是PHP脚本,查询数据库,以便在演示屏幕上生成接近实时的结果

我希望有某种方法可以使用某种类型的事件监听器来接收某些更改的通知,而不是不断地ping服务器


不幸的是,我们没有一个我可以在这里发布的网站的公众视图,但我想获得一些关于技术的意见和想法,以使其能够扩展,并在投票网站和移动网站时同样有效。

是的,有更好的方法。这组技术通常包含在所谓的。您可能想做的是使用AJAX长轮询。基本上,您可以使用浏览器向服务器发出请求,服务器只有在有新数据时才会响应。一旦响应,您就可以在浏览器上立即初始化新请求


请注意,更好的方法是使用web套接字服务器。看看这些,它们是在浏览器和服务器之间进行实时数据传输的一种方式。很多人都在做一些很酷的事情,比如。不过,您确实需要一个专用服务器来实现这一点,而不仅仅是web托管。

这可能没有什么帮助,但PHP并不是实现这一点的最佳语言。您可能想为应用程序的实时组件考虑其他事项。我必须同意米迦勒的观点。这里最好的解决方案是使用web套接字。使用apache+php进行长时间轮询将成为一个大问题。在同一时间,您将有许多打开的连接。使用apache+php时,每个连接的资源使用量相当大,而apache在默认配置中仅限于一定数量的同时连接。这不是一个可扩展的解决方案,但如果您不需要同时访问多个站点,则还可以。