有什么方法可以将数据推送到页面,而不是定期检查数据?

显然,您可以使用ajax定期检查它,但是有什么方法可以在执行php脚本时强制重新加载页面?

从理论上讲,您可以通过仅在应该执行ajax函数时使用一个表来提高ajax请求的速度(当ajax函数应从数据库中检索新数据时更新表中的值),但这仍然需要相当大的内存量甚至在没有更新/您不想执行检索数据库数据的ajax函数的情况下,在执行查询时还有mysql连接以及一些等待时间。

有什么方法可以使它比查询数据库和检查存储“如果已更新”数据的表更有效,或者告诉ajax函数从另一页执行?

我猜想node.js或HTML5 webSocket也可能是可行的解决方案?

或者您可以将“如果已更新”数据存储在文本文件中?欢迎任何建议。

最佳答案

您基本上是在谈论将服务器端事件通知客户端(即浏览器)。它实际上归结为两件事:

  • 您正在使用什么Web服务器? (您是否限于特定语言?)
  • 您需要支持哪些浏览器?

  • 最好的选择是使用 WebSockets 来完成这项工作,除了使用网络套接字之外,其他任何事情都是黑客。不过,许多“hacks”都可以正常工作,建议您尝试 Comet AJAX长轮询

    有一个名为Atmosphere(还有更多)的项目,为您提供适合您所使用的Web服务器的解决方案,然后将根据用户的浏览器自动选择最佳选项。

    如果您不受浏览器的限制并且可以选择您的Web堆栈,那么我建议您使用SocketIO + nodejs。目前,这只是我的偏爱,WebSockets仍处于起步阶段,一旦开始开发更多功能,事情将会变得有趣起来。有时,我的整个应用程序都不适合Node.js,因此我只将数据操作转移给它。

    祝你好运。

    10-04 21:48
    查看更多