论坛首页 Web前端技术论坛

执行JavaScript代码,中间有个异步加载过程,结果代码直接执行到下一行

浏览 6884 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-09-30  
代码如下:
<script>
var id=$F("id");
var bar=new Outlookbar("/treeServlet?kind=com.framework.extcomponent.ui.bizmoduleconfig.tree.MenuImpl&id="+id,"right");
bar.expand();
var outline = bar.getOutLine();
document.write(outline);
</script>

其中 bar.expand(); 是自己封装的一个异步调用过程 问题是代码执行顺序先执行到了document.write(outline); 就是希望的数据还未加载完成它就先输出了
换用dwr后问题依然如故.这是异步的作用吗?一个合适的解决方法会是什么呢?
   发表时间:2006-09-30  
两种解决办法:

1,给bar.expand()加一个回调函数。
2,让bar.expand()方法不进行异步调用。

0 请登录后投票
   发表时间:2006-10-09  
foxty 写道
两种解决办法:

1,给bar.expand()加一个回调函数。


愿问其祥
实际上把document.write(bar);封装到一个回调函数中后,页面的内容是重新写入的,这样与原先的效果就完全不同了
0 请登录后投票
   发表时间:2006-10-09  
昨天参考xloadtree把这个js重新写了一遍,代码如下
   var bar=new XLoadOutlookbar("/outlookbarServlet?id="+id+"&loginName="+loginName,"right");
   document.write(bar);
奇怪的是xloadtree可以正常的显示,而我的问题如旧:(
0 请登录后投票
   发表时间:2006-10-13  
正常啊,你这个用异步肯定是完成页面加载后才会执行这个异步调用的
0 请登录后投票
   发表时间:2007-01-23  
我也遇到类似问题。构造树型菜单第一次不显示子节点,点2次以后才有反应。
0 请登录后投票
   发表时间:2007-01-23  
异步要用得好才行,不甚明了的情况下感觉还是直接同步得了,document.write 不能用个div等的innerhtml来替换掉吗?
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics