页面当中有一个DIV,而这个DIV里面的内容都是通过AJAX异步获取的,有多数据就显示多少数据,而且是一个递归的方式,有父子孙三部分内容,而且这上部分的内容是没有按照顺序一个个显示出来的,关键是访问数据的原因,但是现在有个需求,需要去判断异步记载 数据什么时候结束?
问大侠们:异步加载的递归数据 要怎么判断其已经数据加载完用JS实现,JS有没有什么监听函数,注意数据是递归出来的?
问大侠们:异步加载的递归数据 要怎么判断其已经数据加载完用JS实现,JS有没有什么监听函数,注意数据是递归出来的?
<div id="container">
</div>
<button onclick="test();">-------测试-------</button>
<script>
var data=[
{
self:{name:'aaaa1'},
children:
[
{
self:{name:'bbbb1'},
children:
[
{
self:{name:'cccc1'},
children:[]
},
{
self:{name:'cccc2'},
children:[]
}
]
},
{
self:{name:'bbbb2'},
children:
[
{
self:{name:'cccc3'},
children:[]
},
{
self:{name:'cccc4'},
children:[]
}
]
}
]
},
{
self:{name:'aaaa2'},
children:
[
{
self:{name:'bbbb3'},
children:
[
{
self:{name:'cccc5'},
children:[]
},
{
self:{name:'cccc6'},
children:[]
}
]
},
{
self:{name:'bbbb4'},
children:
[
{
self:{name:'cccc7'},
children:[]
},
{
self:{name:'cccc48'},
children:[]
}
]
}
]
}
];
//alert(data.length);
var content = document.getElementById('container');
function iterator(temp,level){
level++;
for(var j=0;j<temp.length;j++){
var obj = temp[j];
if(obj.self){
var plus="";
for(var i=0;i<level;i++){
plus+="+";
}
///alert(obj.self.name+content+"===="+obj.children.length);
content.innerHTML+=plus+obj.self.name+"<br>";
///alert(obj.self.name+"===="+obj.children.length);
iterator(obj.children,level);
}
}
}
function test(){
content.innerHTML="";
iterator(data,0);
}
</script>
<div>
如果把数据做成DOM一样不就可以递归处理,后台把数据做成JSON格式的数据,脚本也使用JSON,然后再写一个迭代function,比如说后台格式返回到页面上是这样的
按照这种格式就可以迭代了,当然key要换成一样的名子
</div>