ajax长轮询

最近一直在研究ajax长轮询连实现即时通信,但是到底是个怎么轮询法?难道就是循环?还有ajax把数据发送到后台处理,后台怎么把数据自动的发送到客户端呢?他们是把消息数据存... 最近一直在研究ajax长轮询连实现即时通信,但是到底是个怎么轮询法?难道就是循环?还有ajax把数据发送到后台处理,后台怎么把数据自动的发送到客户端呢?他们是把消息数据存放到数据库中?还是用文本文件来存放,但是无论哪一种感觉都有弊端,存放在数据库中查询的时候,服务器压力必然增加,以文本文件存放很容易就丢失,当文件很大的时候,读取速度也会降低,求高手帮我解答一下,具体的一个流程是个什么样的?万分感谢,希望您回答的时候不要黏贴别的地方的答案,我分辨的出来,谢谢。 展开
 我来答
睢鸠醉镶xX
推荐于2017-11-25 · TA获得超过108个赞
知道答主
回答量:52
采纳率:0%
帮助的人:46.5万
展开全部
一般最原始的作法就是在客户端搞个定时器一直向后台请求,而ajax的长轮询与一般的http连接不一样,它发送的是长连接,比如说你发过去一个连接,它并不急于给你返回过来请求,而是等到后台有动作的时候才有相应,这样就减少了客户端的压力,现在很多地方都用到这种技术,比如说百度,新浪微博,比较成熟的框架有pushlet,另外servlet3.0也增加了异步的功能,也能很好的解决这个问题,HTML5在将来,这个问题就更简单了!如果你要研究,建议你深入的了解一下HTTP协议的内部工作原理,了解一下服务器的实现,希望能帮到你。
更多追问追答
追问
其实您说的那些我都理解,利用ajax实现,我发送一个请求,服务器会返回数据,这个我明白,但是我和另外一个人通信,那另外一个人是怎么获取到数据的呢?ajax不是只能给发送请求的客户端返回数据吗?
追答
你从一个客户端发送请求给服务器,服务器会受到这个请求,而另一个客户端正在做长轮询,所以你就可以把这条数据通知给它啊,至于你说的是文本文件还是数据库,以及资源的消耗,那些都是不能避免的,如果你真的想更快,那你直接可以把数据放在内存中,用一个Map将其存放,也是一个道理。建议你可以用框架做,DWR就完全能满足你的要求
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式