Ajax回调数据赋值给变量的标题

写那篇作品是因为我上边Ztree的稿子引发的自我对js的探讨,不明了的可以先看看上边Ztree的回到数据那块,因为是同一个小例子,上篇是装有的代码,上图:

图片 1

自己申明全局变量tree,在Success回调函数里把回调的数码赋值给变量,我即刻想着按照编程习惯做法也都是那,可是难题出现了,我先简单说下Console.info这些法子是在控制台打印数据,因为alert再次来到数据的时候假若是json一些数额的时候,你是alert不出来实际数据的,那么些艺术是试用火狐的,IE是充裕的切近,这几个不钻探那个,火狐上装的是Firebug插件,打印的结果是,如图:

图片 2

打印的结果是一向不的,接着自己按上面那种艺术如下图
,也就是我把打印放在回调函数里是可以打印出来数据的,

图片 3

此时我思疑的是怎么回调过来的多少无法赋值给全局变量,紧接着自己看了Jquery
的API,发现了一块的章程,也就是如下图:

图片 4

async:
false在ajax里丰硕是足以的,当然除了那些主意之外还能把$.fn.zTree.init($(“#treeDemo”),
setting,
tree);那段代码写在回调函数里也是足以兑现树形菜单的,不过自己或者纠结为啥回调的数据部能赋值给变量,接下去自己有做了另一个试行,如下图:

图片 5

本人在回调里面打印了下,又在外场打印了下,结果如下图:

图片 6

先打印出来的是底下的,难题相比明知道,即便本人先写的ajax不过仍旧先实行的底下的代码,所以良好变量tree是打印不出来的,而在回调里面的是后来赋值的之所以能打印出来,总计下那就是比照自己一初步的写法异步请求不能够将再次回到值传给全局变量的,因为JS只管执行当前代码,顺序执行。发送请求了,那是请求响应的事,它不管这一个,只管继续执行在它面前的代码,所以是得不到变量赋值的,要想传给变量可以行使同步也就是async:
false,可是共同是要联手请求将锁住浏览器,用户其它操作必须等待请求达成才得以推行。如若想要赋值给Ztree的树形菜单数据以来,我最终仍旧拔取了在回调函数里举行开首化,想在深入摸底的望族可以看下JS异步原理,那里我就不多研商了,大家可以看看Ztree那篇的代码,好了,甘休。

先是次相比正式的写技术文章尽量写的详尽些,以前一贯学习研商事物也没倒上写。未来时间允许的话我会尽量把前边的下结论给大家,相比较技术是调换和共享的,希望大家都知道,不管事技术好的如故刚入门的都可以看懂,希望对必要的爱人或多或少赞助。有怎么着难题可以反映给自家,我会立马的给您们答应。QQ571001325

相关文章