Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何减少聊天的AJAX请求数量?_Javascript_Ajax_Http_Keep Alive - Fatal编程技术网

Javascript 如何减少聊天的AJAX请求数量?

Javascript 如何减少聊天的AJAX请求数量?,javascript,ajax,http,keep-alive,Javascript,Ajax,Http,Keep Alive,我在我的网站上聊天,它需要向我的服务器发送许多AJAX请求(至少每秒2次),以检查是否有新消息。有没有办法减少请求数量并在发布消息后重新加载消息?我知道不可能使用套接字(因为我不能使用flash、java或HTML5的功能),但也许有一些技巧可以处理HTTP 1.1的保持活动选项?是的,有一个简单的方法可以做到这一点。实际上,你要做的是将ajax调用的超时时间增加到一个长超时(比如,5分钟)。您的服务器接收请求,然后保存它,偶尔检查是否有新的响应。然后,当新的响应得到保证时,它只响应请求,而您的

我在我的网站上聊天,它需要向我的服务器发送许多AJAX请求(至少每秒2次),以检查是否有新消息。
有没有办法减少请求数量并在发布消息后重新加载消息?
我知道不可能使用套接字(因为我不能使用flash、java或HTML5的功能),但也许有一些技巧可以处理HTTP 1.1的保持活动选项?

是的,有一个简单的方法可以做到这一点。实际上,你要做的是将ajax调用的超时时间增加到一个长超时(比如,5分钟)。您的服务器接收请求,然后保存它,偶尔检查是否有新的响应。然后,当新的响应得到保证时,它只响应请求,而您的客户端接收更新

如果在5分钟内没有响应,您的客户端就会超时并启动一个新的ajax请求。如果您的服务器在5分钟内没有响应,则通常会终止保留的请求以使其退出队列


有效地“服务器端”推送。

您可以为示例Tejs提供任何链接吗?没有链接,但在您选择的Web服务器上应该很容易做到。jQuery的ajax帮助程序可以轻松设置长超时。@Tejs这种技术是或。可能最好提一下。我不确定这种技术的名称,但听起来不错=D@Tejs comet还提供了“流”选项。可能还想提及这一点。请使用socket.io;),它使用WebSocket,如果WebSocket不可用,则会降级为Ajax。