解决Ajax全局变量赋值的问题

简介: <p>        在做项目的过程中,以下代码:在1处a为0。然后通过一个ajax请求一个值为1的data赋予a,在2处a为1。然后来到3这里的时候,a还是为0。通过查找网络,得出原因是ajax默认的是异步传输数据,在2处的a的scope只在ajax方法内部。</p> <p></p><pre name="code" class="javascript">//1 var a = 0;

        在做项目的过程中,以下代码:在1处a为0。然后通过一个ajax请求一个值为1的data赋予a,在2处a为1。然后来到3这里的时候,a还是为0。通过查找网络,得出原因是ajax默认的是异步传输数据,在2处的a的scope只在ajax方法内部。

//1
	var a = 0;
	
	$.ajaxSetup({
		async : false
	});
	$.get("a.action", function(data) {
		//2
		a = data;
		alert(a);
	});
	//3
	alert(a);



为了解决上面所遇到的问题,我们把ajax异步传输改为同步。

在与ajax方法之前同一个作用域的位置,设置为同步传输。

//设置为同步传输
	$.ajaxSetup({
		async: false
	}); 
	
	//1
	var a = 0;
	
	$.ajaxSetup({
		async : false
	});
	$.get("a.action", function(data) {
		//2
		a = data;
		alert(a);
	});
	//3
	alert(a);

最好不要把同步传输的设置放在全局范围内,否则设置之后的ajax请求都为同步的了。
目录
相关文章
|
前端开发
Echarts通过ajax获取数据push数组为全局变量不断叠加的解决方案
Echarts通过ajax获取数据push数组为全局变量不断叠加的解决方案
102 0
|
JavaScript 前端开发 索引
vue使用ajax返回数据赋值给table无法立即生效问题
主要问题是:ajax返回之后默认无法勾选,虽然data已经赋值,但是页面并没有生效
3350 0
|
前端开发 JavaScript .NET
AjAX探究——JS调用实体类与赋值
BookInfo.csusing System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ClassProj{    [Serializable]    public ...
796 0
|
12月前
|
XML 前端开发 JavaScript
什么是Ajax和jquery
什么是Ajax和jquery
83 0
|
6月前
|
JSON 前端开发 Java
利用Spring Boot处理JSON数据实战(包括jQuery,html,ajax)附源码 超详细
利用Spring Boot处理JSON数据实战(包括jQuery,html,ajax)附源码 超详细
135 0
|
6月前
|
敏捷开发 JavaScript 前端开发
❤❤❤【Vue.js最新版】sd.js基于jQuery Ajax最新原生完整版for凯哥API版本❤❤❤
❤❤❤【Vue.js最新版】sd.js基于jQuery Ajax最新原生完整版for凯哥API版本❤❤❤
|
6月前
|
前端开发 JavaScript
Jquery ajax捕获错误信息
Jquery ajax捕获错误信息
54 0
|
6月前
|
JSON 缓存 前端开发
Jquery中AJAX的应用
Jquery中AJAX的应用
76 0
|
6月前
|
JSON 前端开发 JavaScript
jQuery中ajax的使用
jQuery中ajax的使用