如何让php后端与HTML前端进行通信?

时间:2011-04-09 19:11:31

标签: php javascript ajax

这是有史以来最无聊的问题,我经常这么做。

我想要一个在后台(后端)不断运行的PHP页面,偶尔用更新的数据查询前端。是的,这是我想要的方式。

但我知道查询页面的唯一方法是使用XHR重新创建php - 所以,我会将XHR“index.php?data = newdata”,但这会创建一个新的进程服务器端。我该怎么办?

(如果有更好的方法,请询问更多信息或纠正我)

3 个答案:

答案 0 :(得分:2)

这是一个很好的问题/答案:

Using comet with PHP?

结果是,你可以用PHP做...

答案 1 :(得分:2)

另一种方法是从Apache设置和Node创建一个桥接器,如果您阅读有关Node的指南,您将看到它是:

  • 专为高负荷网络而设计
  • 只有在需要执行阻塞任务(例如I / O)时才会生成新线程
  • 非常简单易用,基于Google V8(Javascript引擎)
  • 可以处理数千个并发连接

考虑到上述情况,我的计划是为您的PHP应用程序创建一个数据库,并创建2个连接,

  • PHP应用程序中使用的连接
  • Node中使用的连接。

Node的一面很简单:

  • 创建一个简单的套接字服务器(20行)
  • 创建数组
  • 侦听新连接,将资源放入数组中。
  • 附加数据库
  • 当事件被触发时,将新数据传递给阵列中的所有客户端。

所有客户端都会在几乎同时收到数据,这应该是稳定的,它是非常轻量级的解决方案,因为1K Connections将使用1个进程和一些I / O线程,使用的ram将是大约8~ MB

你的第一步是在你的服务器上设置node.js,如果你在google周围就可以找到如何做到这一点,ubuntu下的一个简单方法就是:

apt-get install nodejs

您应该阅读以下资源:

要获得更多技术支持,您应该连接到freenode.net上的#node.js irc服务器,那些人真的可以帮助你了解那里! 希望这会有所帮助。

答案 2 :(得分:1)

COMET可能是一种方法;但是,拥有一个最终的HTML页面,并执行AJAX请求来获取更新是通常的,更强大的方法来实现这一点。我将研究实现基于Ajax的方法,该方法针对速度进行了优化。

你说你正在进行复杂的计算,在进行Ajax方式时你必须为每个请求重复这些计算。你可以帮助那个,例如通过使用智能缓存。如果将您作为JSON编码数据执行的任何结果写入文本文件,则可以在几乎没有任何开销的情况下获取它。