网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

关于jquery同步和异步请求问题总结

关于jquery同步和异步请求问题总结

创新互联服务项目包括龙海网站建设、龙海网站制作、龙海网页制作以及龙海网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,龙海网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到龙海省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

  • 问题

    这几天做项目的时候,写脚本遇到一个问题,就是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之错误调试帮助信息


新闻名称:关于jquery同步和异步请求问题总结
当前网址:http://bjjierui.cn/article/igphjo.html

其他资讯