Ajax,使用它可以构建更为动态和响应更灵敏的Web应用程序。该方法的关键在于对浏览器端的JavaScript、DHTML和与服务器异步通信的组合。
ajax最令人激动地就是它的异步请求。当时,又时有需要同步请求的解决方案。
对于普通的ajax请求。可以将
req.open("GET", url, true);中的第三个参数设为false,就可以了。
在dwr中,由于请求都被封装起来了,就没有办法通过上面方法设置同步执行了。
解压dwr.jar,可以发现里面有engine.js,在它的里面有一个方法
DWREngine.setAsync = function(async) {
DWREngine._async = async;
};
这个async默认值为true.
如果需要同步执行的话,就可以在执行的方法加上上面这个设置例如:
DWREngine.setAsync(false);
var _data = "" ;
Messages.getConfrimMessage(function(data){
_data = data ;
});
DWREngine.setAsync(true);
这样的话就会同步执行getConfrimMessage方法。执行以后,你就会发现尽管结果是正确的,但是还会弹出一个[object error]的警告。
这就要了解engine.js中具体的执行顺序,找出问题究竟出现在那里。这个下次再说
本文介绍如何在DWR框架中实现AJAX的同步请求,通常AJAX采用异步方式工作,但在某些场景下可能需要同步请求。文章详细解释了通过修改DWR的engine.js文件来达到这一目的,并提到了在同步执行时可能会遇到的问题。
826

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



