dwr中同步执行的解决办法

      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中具体的执行顺序,找出问题究竟出现在那里。这个下次再说

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值