[转]dwr 远程调用选项

dwr 远程调用选项(转自:wellstrand.spaces.live.com/Blog/cns!8FD7D4CB30D9972D!300.entry)

远程调用选项

DWR有一些选项用来控制远程调用的处理方式。method和verb对于用户应该时透明的,但是不同的浏览器效果的可能不一样。一般来说DWR会选择正确方法来处理,但是这些选项对于在不同效果的浏览器之间开发很有用。

DWREngine.setAsync(flag)

DWR1.0不支持。

我们指定让XHR异步调用了吗? 默认为true。警告如果你使用的时IFrame或者ScriptTag这一选项被忽略。一般来说把他变成false是个糟糕的做法。因为那样会使你的浏览器变慢。

要设置全局同步机制:

DWREngine.setAsync(true);

或者设置单次调用同步:

Remote.method(params, {
  callback:function(data) { ... },
  async:true
});

或者在batch里面:

DWREngine.beginBatch();
Remote.method1(params, callback1);
Remote.method2(params, callback2);
DWREngine.endBatch({
  async:true
});

DWREngine.setMethod(newmethod)

用来设置恰当的方法。setMethod()不能把正使用你选择的方 法,它只是保证首先尝试使用那个方法。newmethod必须是DWREngine.XMLHttpRequest或者 DWREngine.IFrame,或者2.0以后的DWREngine.ScriptTag。

XMLHttpRequest时默认的,并且大多情况下可用。当ActiveX禁用IFrame就有用了,尽管DWR能自动检测出这种情况并切换到IFrame。当你要突破跨域调用的限制,ScriptTag就很有用了。

例如,要设置全局的远程调用方法:

DWREngine.setMethod(DWREngine.IFrame);

或者单次调用:

Remote.method(params, {
  callback:function(data) { ... },
  method:DWREngine.IFrame
});

或者批量调用:

DWREngine.beginBatch();
Remote.method1(params, callback1);
Remote.method2(params, callback2);
DWREngine.endBatch({
  method:DWREngine.IFrame
});

DWREngine.setVerb(verb)

这个选项允许你选择POST和GET,无论时用iframe还是 XMLHttpRequest方法。一些浏览器(例如,旧版的Safari)不支持XHR-POST所以DWR就自动切换到GET,即使你设置POST为 verb。所以setVerb()应当被仅仅做为一个堤示。

如果使用ScriptTag来远程调用,设置verb时没有的。

例如,设置全局远程调用的verb:

DWREngine.setVerb("GET");

设置单次调用:

Remote.method(params, {
  callback:function(data) { ... },
  verb:"GET"
});

设置批量调用:

DWREngine.beginBatch();
Remote.method1(params, callback1);
Remote.method2(params, callback2);
DWREngine.endBatch({
  verb:"GET"
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值