ajax前面$,连续多次发送Ajax前面的请求被后面的覆盖以致不能执行的问题
感谢http://www.jb51.net/article/27610.htm 的文章《ajax同步请求和异步请求的差异分析》。不过在遇到并解决这个问题之前我也还没有分清同步异步的差异咳咳~
functionfetchdata(cat,str)
{varxmlHttp;//问题就在这里
xmlHttp=GetXmlHttpObject();
varurl;
if(xmlHttp==null)
{
alert("browserdoesn'tsupportHTTPRequest");
return;
}
switch(cat)
{
case"n":url="getcompany.PHP?sid="+Math.random();break;
case"c":
case"p":url="getaddress.PHP?province="+str+"&sid="+Math.random();break;
case"m":varobj=document.getElementById("deptselect");
if(obj.value!=null&&obj.value!="undefined"&&obj.value!="")
{
alert(obj.value)
setCookie('deptname',obj.options[obj.selectedIndex].text,365);
setCookie('deptid',str,365);
}
case"d":url="deptvsmem.PHP?deptid="+str+"&sid="+Math.random();break;
}
alert(url)
xmlHttp.onreadystatechange=function(){//异步调用是否成功
if(xmlHttp.readyState==4||xmlHttp.readyState=="complete")
{
if(xmlHttp.status==200||xmlHttp.status==0)
{
varsel;varvnum;
varstr=xmlHttp.responseText;
alert(str)
switch(str.charAt(0))
{
case"p":sel="provinceselect";vnum=1;break;
case"c":sel="cityselect";vnum=1;break;
case"n":sel="comselect";vnum=1;break;
case"d":sel="deptselect";vnum=2;break;
case"m":sel="memselect";vnum=2;break;
}
str=str.substr(1);
BuildSel(str,document.getElementById(sel),vnum);
}
}
}
xmlHttp.open("GET",url);
xmlHttp.send(null);
}
问题就在于第二行的声明var xmlHTTP,如果放在函数外用作全局变量,就会产生标题的问题,即前面的xhr被后面的请求覆盖以致只能执行最后一条请求。只要把它拿进去就没问题了。。。就!没!问!题!了!!。。。之前看有前辈说是因为在收到xmlHttp.responseText之后没有及时删除,要加delete 而且要设成null,不过亲测即使删除了设成null了还是会覆盖,这样把声明放进函数内之后即使没有删除也没问题了。。。@_@
总结
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
ajax前面$,连续多次发送Ajax前面的请求被后面的覆盖以致不能执行的问题相关推荐
- AJAX学习笔记——发送AJAX的POST请求,模拟from表单提交
关于AJAX发送POST请求,首先演示一个小案例. 当输入用户名:张三,密码:123.点击发送请求按钮 这是用post请求模拟的表单提交.接下来看一下如何用AJAX发送POST请求 后端代码: @We ...
- 原生AJAX以及JQuery发送AJAX请求的几种方式
JSON&AJAX 文章目录 JSON&AJAX 1. JSON 1.1 json概述 1.2 Json使用 3. 原生AJAX 4. JQuery的AJAX 4.1 GET请求方式 ...
- 为什么一次ajax调用会发送两次请求?
引用文章:一次ajax调用,发送了两次请求(一次为请求方法为option,一次为正常请求)
- ajax返回的图片数据格式,jquery发送ajax请求返回数据格式
jquery向服务器发送一个ajax请求后,可以返回多种类型的数据格式,包括:html,xml,json,text等. 1.html格式的数据 " "+username+" ...
- spring ajax 长轮询,Ajax轮询和长轮询
缺点:Ajax轮询需要服务器有很快的处理速度与快速响应.long poll需要很高的并发,体现在同时容纳请求的能力. 一.轮询是在浏览器客户端实现的: 如果从后端获取数据成功则停止请求. $(func ...
- ajax发送动态字符传,如何发送ajax请求文件与其他字符串的变量?
我想创建ajax调用并发送数据与文件和其他变量,我也使用django,如果它的帮助.如何发送ajax请求文件与其他字符串的变量? 我尝试: js文件: $("#save-new-reques ...
- 使用rest_framework写api接口的一些注意事项(axios发送ajax请求)
1. 类继承GenericAPIView,定义queryset 印象深刻的事: 由于原来对于继承关系不太清楚,写接口 APIView/泛指GenericAPIView不太关注queryset 没有设置 ...
- Vue之axios发送Ajax请求
2.10 axios发送ajax请求 axios github 2.10.1 准备工程 创建一个django工程,例如 login.创建完成之后,再创建一个子应用,例如users.最后再设置一下模板文 ...
- tab 触发ajax请求,防止重复发送ajax请求的思索
原标题:防止重复发送ajax请求的思索 防止重复发ajax请求是平时开发中遇到频次较高的问题了.我通常解决方案有如下几种, 1.UI限制 点击完按钮后,就禁用按钮, 并开启显示等待动画,收到服务器的成 ...
- 前端学axios还是ajax,【Web前端问题】axios发送ajax请求问题?
在程序里借助axios库发送ajax请求,但是失败了,返回这个 然而在同一个位置换成jquery的代码却能成功,代码如下,不知axios哪里写的不对??谢谢~ //axios axios.post(& ...
最新文章
- 跨链Cosmos(11) 消息结构
- 程序直接控制I/O方式
- 洞悉linux下的Netfilteriptables
- 【推荐】“水果”公司的复兴 (乔布斯和苹果公司)---Google黑板报
- CTFHUB 《基础认证》:burp使用,basic请求了解
- 张一鸣:做CEO要避免理性的自负
- .NET连接SAP系统专题:C#如何导入内文至SAP(十一)
- 帆软报表在已经搭载服务器上开发_史上最全企业数据产品选型对比(含数仓、报表、BI、中台、数据治理)...
- focal loss dice loss源码_0815——W2V的TF源码阅读
- 开源,才是科技巨头的最佳实践!| 技术头条
- Dijkstra 算法初探
- 一种低侵入性的组件化方案 之 组件化需要考虑的几个问题
- 学习自查:目录(更新中...)
- spss分析qpcr数据_手把手教你使用 SPSS 分析实时荧光定量数据
- 中国城市名列表及code
- 数据中心“容灾”和“备份”的区别
- Arduino ESP8266利用定时器中断控制LED闪烁示例程序
- oracle 12c rac tablespace 表空间删除办法
- mysql全文索引与停止词
- server2012安全_2012年重要安全提示
热门文章
- ESP8266 tcp client 通信
- AutoCAD2020命令提示框信息设置
- C/C++ C# unity经常使用的一些快捷键
- C/C++ C# unity Python 帮助文档 书籍 学习资料
- Atitit 项目分析与统计目录1. 静态分析+动态分析 。其中, 12. 模块分析,与模块位置idx 13. 编程语言类型与版本 13.1. 类库统记表 类型与版本 23.2. 中间
- Atitit 建设自己的财政体系 attilax总结 1.1. 收入理论	2 1.2. 收入分类	2 1.3. 	2 1.4. 非货币收入	2 1.5. 	2 1.6. 降低期望	2 1.7.
- Atitit 手机图片备份解决方案attilax总结
- Atitit 图像处理—图像形态学(膨胀与腐蚀)
- paip.php eclipse output echo 乱码
- paip.提升效率---模块化设计方法V2012.9.15