在项目开发中时常会碰到在ajax中加载的数据再次取出是确发现总也取不到值,如下面:
var myvar = 0;
function ajaxLoadData()
{
$.getJSON("useraction.action",{id: id,r:Math.random()},function(data){
if(data != null)
{
myvar = data;
.................
}
});
alert(myvar);
}
如上代码如果运行的话,会发现弹出的信息有可能是没有被赋值,而实际上data是有值的,对于初学者而言估计就有些感觉莫名其妙,其实经过研究可以发现alert的地方并不是在ajax请求的方法体内,我们知道ajax的请求默认是以异步传输的,那么运行这段代码的时候不管ajax请求是否已经返回值,程序都要顺序向下执行,从而导致变量没有被赋值,所以如果要想让变量赋到值必须将其写在ajax请求方法内,即getJSON内。
原文链接:https://www.f2er.com/ajax/166834.html