关于ajax的延迟返回 如何处理

wenxiaoqqq 2012-04-06 02:02:43
js代码是这样的:点击按钮→ajax 获取data→向div里写入获取的data

如果 第一次点击 ajax 经过2000ms返回
第二次点击 ajax 经过300ms返回

如果用户第一次点击完第一次立即点击第二次,最后div中会是第一次点击获取的data,因为第一次ajax返回时间晚。。。


我的问题是:如果用户多次连续点击,如何确保 div中是用户最后一次点击而获取的data

谢谢。。
...全文
382 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2012-04-08
  • 打赏
  • 举报
回复
在 ajax 交互中附加一个编号
处理时用此编号作为唯一识别标志

否则你即使设置全局变量,也无法识别现在收到的是第几次
jiangfullll 2012-04-06
  • 打赏
  • 举报
回复
设置一个boolean标志和一个全局变量,如果没有执行第一次的ajax,则这个boolean不会改变,然后在用户最后一次单击按钮之后,判断boolean,通过boolean的值,来向后台传是最后一次还是第几次的这个全局变量值。
wzhiyuan 2012-04-06
  • 打赏
  • 举报
回复
异步调用的话本地怎么设置都没办法知道哪个是最新的远端结果的。
这就象你先后派了几个侦查兵老侦查敌情,想知道敌人的兵力,过了一段时间,几个侦查兵继续回来了,有的报道,“敌人有123人”,有的说“敌人有100人”,有的说“敌人有20人”。
只凭这些信息,你是无法判断谁回报的是最信信息。

除非加上一个获取结果时的时间信息,比如“12点10分发现敌人有多少人”,“11点40发现敌人有多少人”,“13点发现敌人有多少人”,凭这个时间,你知道谁是最新的了。

同理,你ajax调用的话,也可以设法返回一个类似的时间信息。

如果没办法返回,也就没办法知道哪个是最新结果。
潮起潮落 2012-04-06
  • 打赏
  • 举报
回复
1.改为同步
2.第一次回调发出到接受改变完DOM这一段时间,卸除AJAX的触发事件
挨踢直男 2012-04-06
  • 打赏
  • 举报
回复
在发送第二次请求前结束第一次请求
http://book.51cto.com/art/200810/91493.htm
tyhjx 2012-04-06
  • 打赏
  • 举报
回复
发送请求时,在URL后面加一个随机的ID

xmlhttp.open("GET","demo_get.asp?t=" + Math.random(),true);

十一文 2012-04-06
  • 打赏
  • 举报
回复
做个全局变量判断
这是第几次
当前比这个数少不做处理就是

52,782

社区成员

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

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