由于DWR的返回结果是需要通过回调函数来执行的,所以一般在处理返回结果时,经常有候需要把变量设给全局变量以供全局调用。
但这里很可能会遇到一个问题,就是明明在回调函数中已经改变了值,但是在之后的输出中有时候却显示为改变前的值。
其实究其原因是因为DWR是异步调用函数方法的。这就导致有时候在调用变量的时候,虽然执行顺序是在DWR调用的后面,但是异步导致了DWR回调方法还未执行完时已经先调用了待更改的变量,于是发生了这种变量好像没有改变的问题产生。
解决方法是把DWR设为同步执行即可。
dwr.engine.setAsync(false);
但为了页面的DWR全局执行的waiting考虑,建议在调用完后再恢复异步执行~
dwr.engine.setAsync(true);
本文介绍了在使用DWR进行异步调用时可能遇到的问题:即回调函数中的变量更新未能及时反映到后续流程中。该现象源于DWR的异步特性。文章提供了将DWR设置为同步模式的方法以解决这一问题,并建议在操作完成后恢复异步模式以保持良好的用户体验。
178

被折叠的 条评论
为什么被折叠?



