$(function(){
var obj;
var ct;
var movie;
var yuanxian;
var yx_movie;
$.getJSON(encodeURI("<%=basePath%>MapAction!query.action"),
function(data) {
movie = data.movie;//这里有值
});
//alert(movie);//提示undefined
mappic();
tb_yx(movie);如果不alert一下这就是undefind
});
一楼回答得很好,异步请求就是先不管这个请求(因为这个请求不知道要多少时间,这里要看网速了),所以会直接执行getJSON后面的代码。
我在想如果网速快过计算机的运算速度,会不会这个movie就能拿到值呢。于是我特意去测试了一下,答案是不会
比如:
var a = new Date().getTime()
console.log('a'+a)
setTimeout(function(){
var b = new Date().getTime()
console.log('b'+b)
},1)
var i=0;
while(i<100){
console.log(i++)
}
可能是ajax请求根本没执行通过,movie没得到赋值导致movie没有被初始化所以alert是undefind
@showbo 回答很专业
alert 之后 有了缓冲时间。你可以改成同步的就没有问题。
var a = new Date().getTime()
console.log('a'+a)
setTimeout(function(){
var b = new Date().getTime()
console.log('b'+b)
},1)
var i=0;
while(i<100){
console.log(i++)
}
手残了,第一次回答没想到这个排序是这样的