Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.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获取对方的输入状态?_Javascript_Ajax_Typing - Fatal编程技术网

如何使用javascript获取对方的输入状态?

如何使用javascript获取对方的输入状态?,javascript,ajax,typing,Javascript,Ajax,Typing,我在很多地方都看到过 聊天时,我可以看到对方是否在打字 如何最容易地实现这一点?您需要使用AJAX 当用户A第一次按键时,您可以告诉服务器他开始键入。 在onkeyup中最后一次按键调用clearTimeout和setTimeout 5秒后,告诉服务器他已停止 然后,在用户B一侧,使用轮询或comet询问服务器它从用户A接收到了什么。聊天客户端代码在看到键盘事件时会向服务器发回一些信息。然后,服务器将信息推送到其他客户端,或者其他客户端每隔一段时间轮询服务器一次。这可以使用XMPP/BOSH方式

我在很多地方都看到过

聊天时,我可以看到对方是否在打字


如何最容易地实现这一点?

您需要使用AJAX

当用户A第一次按键时,您可以告诉服务器他开始键入。 在onkeyup中最后一次按键调用clearTimeout和setTimeout 5秒后,告诉服务器他已停止


然后,在用户B一侧,使用轮询或comet询问服务器它从用户A接收到了什么。

聊天客户端代码在看到键盘事件时会向服务器发回一些信息。然后,服务器将信息推送到其他客户端,或者其他客户端每隔一段时间轮询服务器一次。

这可以使用XMPP/BOSH方式解决。检查-非常好的xmpp库。
或者您可以使用AJAX和服务器轮询来实现这一点。。。我推荐XMPP…

如何最容易地实现这一点?你不能-这是HTTP最棘手的事情之一。在每个按键上单独发出请求效率极低。你有没有研究过Strophe.js如何实现Comet?没有,我没有。我敢肯定这是一种服务器技术——长时间的帮助请求a-LaComet。所以这里我们需要讨论jabber server BOSH是如何实现它的。实际上,我不认为它是一种纯粹的服务器技术。是的,它不是。客户必须了解此请求必须长期保留。就个人而言,我更喜欢xmpp方式。但是彗星也很好。您可以选择-每一个都可以帮助您处理各种聊天通知。但请记住,thad jabber服务器已经通过presence/iq/etc节提供了支持,您可以与使用desctop客户端(如Adium/Miranda)的人聊天。对于Comet,你不能这样做。