DWR中传递外部数据给回调方法

DWR中传递外部数据给回调方法(Passing extra data to callbacks) 2006年7月4日18:49星期二[原创] 追踪此文的RSS

苏小勇 翻译 http://www.bestunix.net/

根据官方文档随手翻译的,可以凑合着看.

通常我们都需要传递外部信息给一个回调方法,但是所有的回调方法都只有一个参数(从远程方法返回的值).

解决方案是使用j avascript闭包。

比如,你需要的回调方法是类似下面的一些东西:

代码
function callbackFunc(dataFromServer, dataFromBrowser) {
// do something with dataFromServer and dataFromBrowser …
}


那么你可以安排这个方法按照下面的顺序被调用:

代码
var dataFromBrowser = ...;
// define an erasure function to store a reference to
// dataFromBrowser and to call dataFromServer
var callbackProxy = function(dataFromServer) {
callbackFunc(dataFromServer, dataFromBrowser);
};
var callMetaData = { callback:callbackProxy };
Remote.method(params, callMetaData);

(Call meta-data 的解释在scripting introduction)


换句话说,这个函数,你作为callback传递的实际上并不是callback.它仅仅是一个闭包,实际上是个用来传递附加了客户端数据的数据的代理。

你可以用下面更简洁的方法来写:

代码
var dataFromBrowser = ...;
Remote.method(params, {
callback:function(dataFromServer) {
callbackFunc(dataFromServer, dataFromBrowser);
}
});


你可能感兴趣的:(.net,DWR,J#)