2012-08-01 72 views
5

我为自己挑战今天写了一个半小时内的jQuery聊天。它最终花了我40分钟。jquery与PHP聊天mySQL

但是,我想改进它,所以服务器和浏览器的负载并不可怕。

当前用户键入到文本框中,按回车键,这些数据被发送到一个.php文件,该文件更新一个mySQL表并输出表中的所有行。

如果有人在没有用户按下回车键的情况下说出任何内容,那么每两秒钟更新一次div间隔。

我只想知道如何以更好的方式或最有效的方式来执行此操作。我想了解使用的最佳技术以及为什么。

感谢您的所有意见,我喜欢堆栈溢出,对我来说它是无价的。

+4

去和Node.js和受SignalR阅读起来。 – mdm 2012-08-01 16:56:25

+0

你可以使用[Ajax](http://api.jquery.com/jQuery.ajax/) – Aust 2012-08-01 16:59:50

+0

这就是我正在做的.load() – Chud37 2012-08-01 17:00:44

回答

1

对于使用“php back”/“javascript front”技术堆栈的聊天应用程序使用ajax轮询将不可避免地导致沉重的服务器负载。 Http并不是专为这种通信而设计的,如果你使用apache(正如我所假设的那样),每个请求的开销都非常大。

作为一些委员会表示,你可以使用全栈JavaScript框架(即在后端Node.js)进行调查。

当我使用PHP后端和JavaScript前端(使用定期ajax民意测验)加速现有的聊天应用程序时,我最终使用第三方服务器端产品来处理轻量级XMPP请求。此服务器端产品为OpenFire,但您可以使用eJabberd获得更好的性能 - 但OpenFire更易于设置和维护。结果非常令人满意,服务器负载显着下降,并且大约1000名在线用户立即传送消息(在低于平均水平的性能专用Linux机器上)。

很难解释SO答案范围内的所有微小细节,但幸运的是,Ben Werdmuller @ IBM在这个主题上写出了一个awesome tutorial

+1

请注意:XMPP实际上是Facebook用来聊天的地方,所以也许这是它的可扩展性的标志 – Sammaye 2012-08-01 18:03:55