`

DWR回调函数设置全局变量值无效的原因及解决方法

DWR 
阅读更多

由于DWR的返回结果是需要通过回调函数来执行的,所以一般在处理返回结果时,经常有候需要把变量设给全局变量以供全局调用。

但这里很可能会遇到一个问题,就是明明在回调函数中已经改变了值,但是在之后的输出中有时候却显示为改变前的值。

其实究其原因是因为DWR是异步调用函数方法的。这就导致有时候在调用变量的时候,虽然执行顺序是在DWR调用的后面,但是异步导致了DWR回调方法还未执行完时已经先调用了待更改的变量,于是发生了这种变量好像没有改变的问题产生。

解决方法是把DWR设为同步执行即可。

 

dwr.engine.setAsync(false);

 

但为了页面的DWR全局执行的waiting考虑,建议在调用完后再恢复异步执行~

 

dwr.engine.setAsync(true);

0
1
分享到:
评论
2 楼 欣水寓言 2011-07-10  
zheng12tian 写道
我设置过不管用

这在IE7及之后的版本中才有用,IE6下是无效的
1 楼 zheng12tian 2011-07-08  
我设置过不管用

相关推荐

Global site tag (gtag.js) - Google Analytics