ajax回调函数执行顺序带来的同步异步问题
2014-09-30 14:19
519 查看
我们来看这样一段代码:
$(function(){
var a =0;
$.getJSON(
"student_toadd",
{stunum:10},
$.each(status,function(i){
........................
a=10;
.............................
});
)
alert(a);
});
你说说看弹出的a是多少?我说:有可能是10,有可能是0。
为毛?
因为ajax的执行是异步的,有可能回调函数还没有拿到返回值,就弹出a了。
解决办法
var a = 0;
$.ajax({
type: "get",
dataType: "json",
async: false // 异步为false
url: "student_toadd",
data:{stunum:10},
success:function(data){ a = 10;}
});
alert(a);
这表示,将$.ajax拿到返回值后,在执行后面的js。
这样a就是10了。
$(function(){
var a =0;
$.getJSON(
"student_toadd",
{stunum:10},
$.each(status,function(i){
........................
a=10;
.............................
});
)
alert(a);
});
你说说看弹出的a是多少?我说:有可能是10,有可能是0。
为毛?
因为ajax的执行是异步的,有可能回调函数还没有拿到返回值,就弹出a了。
解决办法
var a = 0;
$.ajax({
type: "get",
dataType: "json",
async: false // 异步为false
url: "student_toadd",
data:{stunum:10},
success:function(data){ a = 10;}
});
alert(a);
这表示,将$.ajax拿到返回值后,在执行后面的js。
这样a就是10了。
相关文章推荐
- ajax回调函数执行顺序带来的同步异步问题
- ajax回调函数执行顺序带来的同步异步问题
- ajax回调函数执行顺序带来的同步异步问题
- ajax回调函数执行顺序带来的同步异步问题
- ajax回调函数执行顺序带来的同步异步问题
- 同步、异步、回调执行顺序之经典闭包setTimeout分析
- 「JavaScript」同步、异步、回调执行顺序之经典闭包setTimeout分析
- 顺序执行,等待前面结束后面才执行是同步(false);否则是异步(true)
- ajax异步模式下实现等待loading(jQuery同步Ajax带来的UI线程阻塞问题及解决办法)
- asp.net关于Page_Load方法和执行js脚本顺序的不同所带来的问题
- vue同步父子组件和异步父子组件的生命周期顺序问题
- ReactNative踩坑日志——使用async/await语法解决网络请求的异步导致的指令执行顺序错乱问题
- jquery中ajax函数执行顺序问题 ---设置同步
- JavaScript同步、异步、回调执行顺序之setTimeout面试题分析
- 前端踩坑小结:多个异步请求在同一个函数里面执行时的同步问题之promise的用法。
- jquery中ajax函数执行顺序问题之如何设置同步
- JavaScript同步、异步、回调执行顺序之经典闭包(setTimeout面试题分析)
- js中的for循环与异步回调函数执行顺序问题
- Jquery 同步请求和异步请求(执行顺序)
- 异步方法中map、forEach和for循环中带来的异步执行问题