有什么方法可以将数据推送到页面,而不是定期检查数据?
显然,您可以使用ajax定期检查它,但是有什么方法可以在执行php脚本时强制重新加载页面?
从理论上讲,您可以通过仅在应该执行ajax函数时使用一个表来提高ajax请求的速度(当ajax函数应从数据库中检索新数据时更新表中的值),但这仍然需要相当大的内存量甚至在没有更新/您不想执行检索数据库数据的ajax函数的情况下,在执行查询时还有mysql连接以及一些等待时间。
有什么方法可以使它比查询数据库和检查存储“如果已更新”数据的表更有效,或者告诉ajax函数从另一页执行?
我猜想node.js或HTML5 webSocket也可能是可行的解决方案?
或者您可以将“如果已更新”数据存储在文本文件中?欢迎任何建议。
最佳答案
您基本上是在谈论将服务器端事件通知客户端(即浏览器)。它实际上归结为两件事:
最好的选择是使用 WebSockets 来完成这项工作,除了使用网络套接字之外,其他任何事情都是黑客。不过,许多“hacks”都可以正常工作,建议您尝试 Comet 或 AJAX长轮询。
有一个名为Atmosphere(还有更多)的项目,为您提供适合您所使用的Web服务器的解决方案,然后将根据用户的浏览器自动选择最佳选项。
如果您不受浏览器的限制并且可以选择您的Web堆栈,那么我建议您使用SocketIO + nodejs。目前,这只是我的偏爱,WebSockets仍处于起步阶段,一旦开始开发更多功能,事情将会变得有趣起来。有时,我的整个应用程序都不适合Node.js,因此我只将数据操作转移给它。
祝你好运。