禁止同一条ajax请求重复发出的方法
2013-10-10 21:50
197 查看
在项目中,遇到的问题是:
四个tab发送四个不同的请求,当用户连续在不同的按钮之间来回切换时,会出现不清楚那条数据是需要展示的的问题,和当连续点击同一个按钮时,基本同时返回的数据会全都展示出来的问题。
解决的方法:
需要展示哪条的问题:
记录最后一次用户点击的tab,对请求回来的数据进行判断,找出与用户最后一次点击的tab相同的那条数据展示出来。
这样做仍然存在的问题是,可能两条以上相同的请求发出,得到两条以上相同的数据,这样就会重复展示出来。
禁止发出两条相同的请求:
通过为tab请求设置不同的标记位的方法,当请求正在进行时,将标记位设置为正在请求。在用户再次点击此tab时,判断该标志位,从而决定是否需要再次发出请求。
网上的解决方案:
对于禁止同时发出两条以上相同请求的方法,网上有给出的解决方案是,给tab设置disable的方法,同上面的方法原理相同,但缺点是需要操作DOM,性能较差。
在之前看jQuery源码时,看过deffered 和promise,似乎可以直接查看ajax请求的状态。 但因为对deffered、promise不熟悉,没有找到相应的方案。
后续需要了解deffered和promise。
四个tab发送四个不同的请求,当用户连续在不同的按钮之间来回切换时,会出现不清楚那条数据是需要展示的的问题,和当连续点击同一个按钮时,基本同时返回的数据会全都展示出来的问题。
解决的方法:
需要展示哪条的问题:
记录最后一次用户点击的tab,对请求回来的数据进行判断,找出与用户最后一次点击的tab相同的那条数据展示出来。
这样做仍然存在的问题是,可能两条以上相同的请求发出,得到两条以上相同的数据,这样就会重复展示出来。
禁止发出两条相同的请求:
通过为tab请求设置不同的标记位的方法,当请求正在进行时,将标记位设置为正在请求。在用户再次点击此tab时,判断该标志位,从而决定是否需要再次发出请求。
网上的解决方案:
对于禁止同时发出两条以上相同请求的方法,网上有给出的解决方案是,给tab设置disable的方法,同上面的方法原理相同,但缺点是需要操作DOM,性能较差。
在之前看jQuery源码时,看过deffered 和promise,似乎可以直接查看ajax请求的状态。 但因为对deffered、promise不熟悉,没有找到相应的方案。
后续需要了解deffered和promise。
相关文章推荐
- 防止ajax重复请求的方法(GET和POST)
- 使用jQuery的ajax方法向服务器发出get和post请求的方法
- ajax系列之用jQuery的ajax方法向服务器发出get和post请求
- 【笔记】防止ajax重复请求的GET和POST方法
- 在Ajax请求中处理登录session超时的方法
- jQuery AJAX中的$.ajax()方法请求成功却始终进入error问题的解决方案及原因记录
- 掌握 Ajax,第 2 部分: 使用 JavaS 4000 cript 和 Ajax 发出异步请求
- springMVC解决ajax请求乱码的三种方法
- 重写ajax方法实现异步请求session过期时跳转登录页面
- 关于JQuery中的ajax请求或者post请求的回调方法中的操作执行或者变量修改没反映的问题
- 掌握 Ajax,第 2 部分: 使用 JavaScript 和 Ajax 发出异步请求
- "无法向会话状态服务器发出会话状态请求。请确保 ASP.NET State Service (ASP.NET 状态服务)已启动"问题解决方法
- listview禁止双击一条之后选中复选框按钮的方法
- AJAX(XMLHttpRequest)进行跨域请求方法详解(一)
- ajax取消挂起请求的处理方法
- 重写ajax方法实现请求session过期时跳转登录页面
- 使用ajax请求SpringMVC返回Json出现乱码解决方法
- AJAX中同时发送多个请求(并发)对象处理方法
- AJAX请求 $.ajax方法的使用