JS异步方法导致的问题

来源:百度知道 编辑:UC知道 时间:2024/06/22 16:36:06
我用了一套控件DHX的tree控件
实用到后期遇到一个棘手的问题
大家看代码:
tree.loadXML("dhtmlxtree/tree.xml");//加载树资源
//alert('郁闷啊');
tree.setUserData('5','url','www.javaeye.com');//修改树节点
loadXML是一个异步方法由插件提供 功能是夹在XML文件构建树结构
后面的setUserData方法是根据ID修改节点内容(动态树很常用的功能)
现在的问题是正常的流程下来loadXML还没有构建完成后面的setUserData方法就开始执行了(因为异步)
使得方法执行失败 但是中间加一个alert就可以阻塞异步方法使其结束 后面的方法自然能执行成功
但是工程发布不可能随便乱弹alert 所以请教大家有没有好的解决方法
PS:因为tree是控件封装 所以无法控制方法内部

1\直接改dhtmlxtree/tree.xml好了,

2\或者setTimeout延迟执行下面的js

3\不行就定时循环执行这个tree.setUserData('5','url','www.javaeye.com'),直到不抱错为止