写这篇稿子是盖我点Ztree的篇章引发的本身本着js的研究,不理解的得先看看上面Ztree的归来数据那片,因为是暨一个不怎么例子,上篇是具的代码,上图:

json 1

我声明全局变量tree,在Success回调函数里把回调的数据赋值给变量,我顿时纪念方根据编程习惯做法吧都是这,但是问题出现了,我先行简单说生Console.info这个办法是在控制台打印数据,因为alert返回数据的当儿如果是json一些数据的时光,你是alert不出实际数目的,这个艺术是试用火狐的,IE是生的接近,这个不讨论这个,火狐上装的凡Firebug插件,打印的结果是,如图:

json 2

打印的结果是不曾的,接着自己按照下这种方法如下图
,也尽管是我管打印在回调函数里是得打印出来数据的,

json 3

这时我问题的凡为什么回调过来的数据未能够赋值给全局变量,紧接着自己看了Jquery
的API,发现了一块儿的法,也即是使下图:

json 4

asyncjson:
false在ajax里长是足以的,当然除了这个方法之外还好管$.fn.zTree.init($(“#treeDemo”),
setting,
tree);这段代码写以回调函数里啊是好兑现树形菜单的,但是自己要纠结为什么回调的多少部能赋值给变量,接下去自己出召开了其它一个尝试,如下图:

json 5

自己于回调里面打印了生,又当外边打印了产,结果一旦下图:

json 6

先行打印出来的是下面的,问题比较清楚了了,虽然我事先勾勒的ajax但是还是预先实行之下面的代码,所以特别变量tree是打印不出去的,而以回调里面的是后来赋值的所以能打印出,总结下那便是据自平开始的写法异步请求不能够拿回来值传给全局变量的,因为JS只管执行时代码,顺序执行。发送请求了,那是呼吁响应的从业,它不管这些,只管继续执行在它们面前的代码,所以是得不至变量赋值的,要想传为变量可以利用并啊便是async:
false,但是共同是使同请求将锁住浏览器,用户其它操作必须待请求完成才得以尽。如果想使赋值给Ztree的树形菜单数据以来,我最终要选择了在回调函数里展开初始化,想以深入了解之大家可以扣押下JS异步原理,这里自己就算无多讨论了,大家可看看Ztree那篇的代码,好了,结束。

第一浅比较正规的勾勒技术文章尽量写的详细些,之前一直读研究事物啊绝非倒上勾画。以后时间允许的说话我会尽量把之前的下结论为大家,比较技术是交流暨共享的,希望大家都知情,不管事技术好的还是刚入门的且可看懂,希望对亟待的意中人或多或少援。有啊问题得以举报让本人,我会马上的吃你们对。QQ571001325

相关文章

网站地图xml地图