下面这些选项可以通过 DWREngine.setX() 函数来设置全局属性。例如:
DWREngine.setTimeout(1000);
或者在单次调用级别上(假设 Remote 被 DWR 暴露出来了):
Remote.singleMethod(params, {
callback:function(data) { ... },
timeout:2000
});
远程调用可以批量执行来减少反应时间。endBatch 函数中可以设置选项。
DWREngine.beginBatch();
Remote.methodInBatch1(params, callback1);
Remote.methodInBatch2(params, callback2);
DWREngine.endBatch({
timeout:3000
});
可以混合这几种方式,那样的话单次调用或者批量调用级别上的设置可以复写全局设置(就像你希望的那样)。当你在一个批量处理中多次设置了某个选项,DWR 会保留最后一个。所以如果 Remote.singleMethod() 例子在 batch 里面,DWR 会使用 3000ms 做为超时的时间。
callback 和 exceptionHandler 两个选项只能在单次调用中使用,不能用于批量调用。
preHook 和 postHook 选项两个选项是可添加的,就是说你可以为每一次调用添加多个 hook。全局的
preHook 会在批量调用和单次调用之前被调用。同样全局的 postHook 会在单次调用和批量调用之后被调
用。
如果以上叙述让你感到混乱,不用担心。DWR 的的设计往往和你想象中的一样,所以其实这些并不复杂