var flag = false; $.getJSON(url, params, function(data) { // jQuery的AJAX默认使用的是异步方式执行 // 所以语句[[[2]]]绝大数时候都比这里先执行,这里相当于使用了一个新的线程来执行。 // 如果想使用AJAX使用同步的方式执行,即必须先执行完这里,再执行[[[2]]], // 那么必须把设置async: false flag = true; alert(flag); // true }); alert(flag); //false [[[2]]]
这里若是希望根据回调函数的返回数据做一些后续操作则需要按照如上注释的设置.
var flag = false; $.ajaxSetup({ async: false // 使用同步方式执行AJAX }); $.getJSON(url, params, function(data) { flag = true; alert(flag); // true }); alert(flag); //这样可以获得经回调函数处理后的flag