禁止同一条ajax请求重复发出的方法
在项目中,遇到的问题是:
四个tab发送四个不同的请求,当用户连续在不同的按钮之间来回切换时,会出现不清楚那条数据是需要展示的的问题,和当连续点击同一个按钮时,基本同时返回的数据会全都展示出来的问题。
解决的方法:
需要展示哪条的问题:
记录最后一次用户点击的tab,对请求回来的数据进行判断,找出与用户最后一次点击的tab相同的那条数据展示出来。
这样做仍然存在的问题是,可能两条以上相同的请求发出,得到两条以上相同的数据,这样就会重复展示出来。
禁止发出两条相同的请求:
通过为tab请求设置不同的标记位的方法,当请求正在进行时,将标记位设置为正在请求。在用户再次点击此tab时,判断该标志位,从而决定是否需要再次发出请求。
网上的解决方案:
对于禁止同时发出两条以上相同请求的方法,网上有给出的解决方案是,给tab设置disable的方法,同上面的方法原理相同,但缺点是需要操作DOM,性能较差。
在之前看jQuery源码时,看过deffered 和promise,似乎可以直接查看ajax请求的状态。 但因为对deffered、promise不熟悉,没有找到相应的方案。
后续需要了解deffered和promise。
禁止同一条ajax请求重复发出的方法的更多相关文章
- jquery中通过全局变量来禁止多次ajax请求
var ajaxstate=false;//定义全局变量,通过这个变量来获得当前的ajax状态 $(function(){ $(document).ajaxStart(function(){ $(&q ...
- 控制请求重复提交的方法总结(Token)
重复提交的定义: 重复提交指的是同一个请求(请求地址和请求参数都相同)在很短的时间内多次提交至服务器,从而对服务器造成不必要的资源浪费,甚至在代码不健壮的情况还会导致程序出错. 重复提交的原因或触发事 ...
- ajax请求封装的公共方法
/** * post 方法 */ function ajaxPost(url, params, callBack) { ajax(url,params,"post",callBac ...
- jQuery的$ .ajax防止重复提交的方法
没啥说的直接贴代码,很简单: 第一种方式:的onclick点击事件类型 <SCRIPT> function member_del(obj,id){ var lock = false; // ...
- JSF拦截ajax请求并传递参数方法
我们可以利用f:ajax做一些简单的ajax操作,但是遇到复杂的逻辑,它不能简单的去实现,jsf提供了一种方法,可以调用它内部的js方法去实现复杂的逻辑. 首先要在页面引入jsf的js文件: < ...
- MVC Ajax.BeginForm重复提交解决方法
mvc使用MVC Ajax.BeginForm提交的时候有重复提交结果的时候检查相关js文件引用情况, 其中mvc4注意 1 2 3 4 @Scripts.Render("~/bundles ...
- ajax请求aspx.cs后台方法
前台jquery代码 $(function () { $("#btnfix").click(function () { $.ajax({ type: "post" ...
- jquery中获取ajax请求返回数据的方法
function getPageTotalAndDataTotal(page) { //设置一个变量用于接收ajax返回的值 var pageTotal = 0; // 获取页数与数据总数 $.aja ...
- AJAX请求真的不安全么?谈谈Web安全与AJAX的关系。
开篇三问 AJAX请求真的不安全么? AJAX请求哪里不安全? 怎么样让AJAX请求更安全? 前言 本文包含的内容较多,包括AJAX,CORS,XSS,CSRF等内容,要完整的看完并理解需要付出一定的 ...
随机推荐
- 使用maven创建工程报错Could not resolve archetype org.apache.maven.archetype
错误: Could not resolve archetype org.apache.maven.archetypes:maven-archetype-quickstart:1.1 from any ...
- C++实现最少硬币兑换问题
最少硬币兑换问题 #include<iostream> #include<fstream> using namespace std; int n,L; //n种硬币L长的数组 ...
- Oracle的sql语句中关键字冲突用双引号
select distinc user from instrument where created>"TO_DATE"('2015-02-05 12:00:00', 'yyy ...
- mysql客户端(Navicat)远程登录操作遇到问题1142 - XXX command denied to ×××
新建的dbtest用户,访问新建立的TestDB数据库每次都提示1142错误(已经对数据库TestDB赋予了所有权限) 解决方法: Mysql命令: GRANT SELECT ON mysql.* T ...
- DataGridView基本操作
1.获得某个(指定的)单元格的值:dataGridView1.Row[i].Cells[j].Value;2.获得选中的总行数:dataGridView1.SelectedRows.Count;3.获 ...
- Session 的生命周期
#region EntityMap /// <summary> /// 实体类值的访问器,线程安全 /// </summary> // ...
- Spring 4 官方文档学习(十)数据访问之OXM
http://docs.spring.io/spring/docs/current/spring-framework-reference/html/oxm.html Java Object 与 XML ...
- R语言低级绘图函数-abline
abline 函数的作用是在一张图表上添加直线, 可以是一条斜线,通过x或y轴的交点和斜率来确定位置:也可以是一条水平或者垂直的线,只需要指定与x轴或y轴交点的位置就可以了 常见用法: 1)添加直线 ...
- wd mycloud nas新玩法
最近家里的小米路由器坏了,主要是硬盘读取不出,小米之家也无能为力,本想继续在小米之家买个小米路由器,后来了解到了nas,于是想折腾下.我的nas型号是wd mycloud,3TB内置硬盘.功能:可以组 ...
- ThinkPHP的ajaxReturn方法的使用
ThinkPHP后端的代码如下: public function testAjax(){ $this->ajaxReturn(array('name'=>'z','age'=>18) ...