0
点赞
收藏
分享

微信扫一扫

[转]dwr 远程调用选项


dwr 远程调用选项

远程调用选项

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 条评论