ajax同步获取远程数据的方法比较——$.ajax与$.getJSON

今天项目中遇到了ajax远程请求数据的问题,一开始使用$.ajax获取不到数据,后来发现ajax默认是异步获取数据的,于是寻求同步获取的方法,最开始是这样的:

$.ajax({
				url: url,
				dataType: 'jsonp',
				async:false,
				success: function(response){
					if (response.error) {
						alert(response.error.message + '\n' +
							response.error.details.join('\n'));
					} else {
							feature = esrijsonFormat.readFeatures(response);
					}
				}
			});

上面设置了 async:false,可是实际执行过程中,依然是异步执行的,不知道是什么原因。后来采用 $.getJSON的方式,按如下进行同步获取:

$.ajaxSettings.async = false; //设置getJson同步
			$.getJSON(url,function(data){
				feature = esrijsonFormat.readFeatures(data);
		     });
			$.ajaxSettings.async = true; //设置getJson异步

这样就在程序执行过程中,同步获取到需要的数据。至于前面的$.ajax为什么在设置了同步的条件下依然异步执行,还不得而知。现将问题及两种方法记录于此,希望用$.ajax同步获取失败的可以试试$.getJSON,经实测是可行的。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值