重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
关于jquery同步和异步请求问题总结
创新互联公司2013年成立,是专业互联网技术服务公司,拥有项目成都做网站、网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元长葛做网站,已为上家服务,为长葛各地企业和个人服务,联系电话:18980820575问题
这几天做项目的时候,写脚本遇到一个问题,就是jquery异步请求和同步请求执行顺序不按代码顺序执行而是最后执行导致添加数据报错,添加到空值,这怎么忍,于是我去查找jquery api,终于知道了原来jquery默认异步请求,防止数据卡死,终于让我找到了这货 async,当async: true 时,ajax请求是异步的。当async : true 时,就是同步的,但是我又有个问题,怎么设置,这个在哪设置,用$.ajax去写这个操作,不,不太麻烦了,到底怎么解决
解决方案
方案一
用$.ajax方法,可以设置请求方法 , 记得设置 async 为 false 就是同步了,下面是代码案例
$.ajax({ type : "GET",//请求方式 url : '/address/getParentId',//请求url data : {parentId : parentId},//请求参数 dataType : 'json',//返回数据类型 async : false, //设为false就是同步请求 cache : false,//是否缓存,默认true success : function (addressList) {//成功事件 if(addressList && addressList.length > 0){ $.each(addressList, function(index, item){ array.push({ id : item.id, name : item.address, }); }); } }, error : function (XMLHttpRequest, textStatus, errorThrown) {//失败事件 // 通常情况下textStatus和errorThown只有其中一个有值 this; // the options for this ajax request } });
方案二
利用 $.ajaxSetup 来设置请求属性
//设置同步 $.ajaxSetup({ async : false }); var array = []; $.get('/address/getParentId',{parentId : parentId},function(addressList){ //循环添加数据 $.each(addressList, function(index, item){ array.push({ id : item.id, name : item.address, }); }); });
这样的话就ok了,请求的时候是同步了
结语
新人第一篇博文,不足之处请指出,我会改进的,谢谢
参考:JQuery.Ajax之错误调试帮助信息
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。