请问,使用ajax时,请求数据,如果返回为空,则继续请求,直到有结果,然后返回结果

yuyihanqing 2013-11-29 11:33:54
1、请求结果如果超过一分钟还没有返回结果,则重新请求
2、我说的是一次请求,不是调用其他函数,执行多次请求
3、如果不明白什么意思,请参考腾讯的webqq http://w.qq.com



我的ajax只懂得些皮毛,希望能够得到大神的指点,小弟不胜感激!
...全文
311 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuyihanqing 2013-11-29
  • 打赏
  • 举报
回复
@showbo 我的ajax只懂得些皮毛,我是用jquery里的ajax,不知道怎么改,能帮我贴一段详细的代码吗?谢谢!
KK3K2005 2013-11-29
  • 打赏
  • 举报
回复
(function(){ var ok = false; //有返回结果了吗 var waittime= 1000*60; //下一次ajax的调用时间 function myajax(){ //假定这个是你的ajax代码的入口 if(ok)return; setTimeout(arguments.callee, waittime); $.post('myurl',{},function(){ ok= true; //处理返回结果 }); } })();
  • 打赏
  • 举报
回复
请求的页面用线程控制就行了别for循环60此,1s检查一次是否有数据什么的,没有就sleep 1s,有就直接输出内容并结束for循环。 客户端判断xhr readyState为4获取是否有数据,然后继续xhr请求
yuyihanqing 2013-11-29
  • 打赏
  • 举报
回复
引用 5 楼 showbo 的回复:
主要是服务器端来实现,客户端就在success回调里面继续发送请求
恩 好 明白了 谢谢!
  • 打赏
  • 举报
回复
主要是服务器端来实现,客户端就在success回调里面继续发送请求
yuyihanqing 2013-11-29
  • 打赏
  • 举报
回复
引用 1 楼 showbo 的回复:
请求的页面用线程控制就行了别for循环60此,1s检查一次是否有数据什么的,没有就sleep 1s,有就直接输出内容并结束for循环。 客户端判断xhr readyState为4获取是否有数据,然后继续xhr请求
我的ajax只懂得些皮毛,我是用jquery里的ajax,不知道怎么改,能帮我贴一段详细的代码吗?谢谢!

52,782

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧