由于DWR的返回结果是需要通过回调函数来执行的,所以一般在处理返回结果时,经常有候需要把变量设给全局变量以供全局调用。 但这里很可能会遇到一个问题,就是明明在回调函数中
由于DWR的返回结果是需要通过回调函数来执行的,所以一般在处理返回结果时,经常有候需要把变量设给全局变量以供全局调用。
但这里很可能会遇到一个问题,就是明明在回调函数中已经改变了值,但是在之后的输出中有时候却显示为改变前的值。
其实究其原因是因为DWR是异步调用函数方法的。这就导致有时候在调用变量的时候,虽然执行顺序是在DWR调用的后面,但是异步导致了DWR回调方法还未执行完时已经先调用了待更改的变量,于是发生了这种变量好像没有改变的问题产生。
解决方法是把DWR设为同步执行即可。
dwr.engine.setAsync(false);
但为了页面的DWR全局执行的waiting考虑,建议在调用完后再恢复异步执行~
dwr.engine.setAsync(true);