日期:2014-05-16  浏览次数:20748 次

怎么样ajax通道保持一直连接啊?
俺有一个ajax请求,去请求访问一个远程的servlet(已经跨域)用的jquery,$.getJSON()或者$.ajax都行,在请求的服务端一个servlet不断的给我传递数据(json类型的)每秒一次吧,但是我的ajax直接接收到一次的请求,循环的接收就不行了,我也知道要用服务推技术,HTTP长连接,Comet,等...但是在下试了很久之后还是没有测试出个结果来,各位大神有好的方法吗?或者曾经做过类似的案例呢,分享一下吧!还希望各位大神们,不吝赐教...

------解决方案--------------------
就是间隔发送ajax请求就可以了。
------解决方案--------------------
同问题。连接是没有状态的,一次连接完成就退出来了。
探讨
你弄错了吧
ajax是发送请求,然后接收响应

浏览器端是主动,服务器端是被动

还有,什么长连接,http请求你长连接就超时了

------解决方案--------------------
最好的方法是Html5的WebSocket,期待吧。
------解决方案--------------------
$.ajax有一个属性
timeout:10000设置为长时间,还有你服务器端要设置返回的数据长度不能等于一次的长度,服务器没发一次数据就flush一下,那样就能一次接受几次请求了,但目前不知道是几次请求一起在success里处理,还是你服务器端没flush一次就处理一次,你可以自己试验下
------解决方案--------------------
服务推技术,HTTP长连接,Comet说得应该是一回事,目的也都是轮询,只不过区别在返回数据的时候,首先ajax的调用设为异步,定时发出请求,ajax返回数据时做个判断,如果一定时间没收到 服务器端信息就停止。页面上嵌入iframe也同样可以做到这种功能,也是定时发送url请求,谷歌就是这么做的