Ajax修改全局变量问题解决方法(Zepto版)

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: |||超大  

前两天项目遇到一个用Ajax修改全局变量的案例,一开始无法给这个全局变量修改赋值,在网上查了一下,解决如下:

修改前:

varWord=1;

$.ajax({

url:"myJSON.json",

type:"get",

dataType:"json",

success:function(data){

word=2;

}

});

alert(word);

结果:弹出1;

原因:js是单线程的语言,而ajax是异步加载的,可以这么理解,上面的代码中,先运行完了alert,才运行ajax里的赋值,因此弹出的word的值是1

修改后:

varword=1;

$.ajax({async:false,url:"myJSON.json",

type:"get",

dataType:"json",

success:function(data){

word=2;

}

});

alert(word);

结果:弹出2

原因:代码中增加async:false,将ajax修改为同步加载,那么整个代码就按照先后顺序加载完成,因此弹出的word的值是2

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航