42 是 Java 方法 getData()的一个参数。
此外你也可以使用这种减缩格式:
Remote.getData(42, function(str) { alert(str); });
调用元数据对象(Meta-Data)
另外一种语法时使用"调用元数据对象"来指定回调函数和其他的选项。上面的例子可以写成这样:
Remote.getData(42, {
callback:function(str) { alert(str); }
});
这种方法有很多优点:易于阅读,更重要的指定额外的调用选项。
超时和错误处理
在回调函数的元数据中你可以指定超时和错误的处理方式。例如:
Remote.getData(42, {
callback:function(str) { alert(str); },
timeout:5000,
errorHandler:function(message) { alert("Oops: " + message); }
});
查找回调函数
有些情况下我们很难区分各种回调选项(记住,Javascript 是不支持函数重载的)。例如:
Remote.method({ timeout:3 }, { errorHandler:somefunc });
这两个参数之一是 bean 的参数,另一个是元数据对象,但是我们不能清楚的告诉 DWR 哪个是哪个。为了可以
跨浏览器,我们假定 null == undefined。 所以当前的情况,规那么是:
� 如果第一个或最后一个是一个函数,那么它就是回调函数,没有元数据对象,并且其他参数都是 Java
的方法参数。
� 另外,如果最后一个参数是一个对象,这个对象中有一个 callback 成员,并且它是个函数,那么这个
对象就是元数据对象,其他的都是 Java 方法参数。
� 另外,如果第一个参数是 null ,我们就假设没有回调函数,并且其他的都是 Java 方法参数。尽管如
此,我们会检查最后一个参数是不是 null,如果是就发出警告。
� 最后如果最后一个参数是 null,那么就没有 callback 函数。
评论0
最新资源