Php 基于Ajax的聊天无限服务器端循环

Php 基于Ajax的聊天无限服务器端循环,php,javascript,jquery,http-post,Php,Javascript,Jquery,Http Post,我在我的网页上聊天。我每5秒钟发送一次ajax帖子以检查回复。没有更好的解决方案来避免发送太多的请求吗 类似于服务器上的无限*循环 PHP服务器端: $i = 0 while(!$replies = checkNewReplies() && $i++<1000){ sleep(1); } echo json_encode($replies); exit; $i=0 虽然(!$replays=checknewreplays()&&$i++我认为有很多

我在我的网页上聊天。我每5秒钟发送一次ajax帖子以检查回复。没有更好的解决方案来避免发送太多的请求吗

类似于服务器上的无限*循环

PHP服务器端:

$i = 0
while(!$replies = checkNewReplies() && $i++<1000){        
    sleep(1);
}
echo json_encode($replies);
exit;
$i=0

虽然(!$replays=checknewreplays()&&$i++我认为有很多可能的解决方案。你可以看看长轮询(这基本上就是你正在做的)


另一种选择是使用类似XMPP的东西,它有一些Javascript客户端。

这个页面肯定会帮助你,它帮助我在我开发的内部销售仪表板中集成了一个完全实时的消息传递系统……非常酷的东西


我认为Facebook做得很好的一件事是,当文本输入具有
焦点时,他们使用长轮询。他们打开连接,直到输入为
模糊
-red。这让我觉得他们有一些DOM事件侦听器等待打开和关闭连接。长轮询很棘手,因为它会对您的服务器造成严重破坏版本。您必须确保在车身
onload
时关闭所有可能已打开的连接

您的方法听起来很合理,但是如果您从数据库中提取数据,并且您对进入数据库的调用量足够满意,那么您可以使用
usleep()
,而不是
sleep()
。您的SQL语句总是可以使用类似的方法


不过,这些都是自以为是的。

长轮询..?COMET风格的编程将为您提供可用的解决方案(长轮询最受欢迎),websocket呢?搜索websocket I/O和node.js