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

本文介绍了如何在DWR框架中通过JavaScript闭包的方式将浏览器端数据传递给回调方法,以便能够利用这些数据进行进一步的处理。
DWR中传递外部数据给回调方法(Passing extra data to callbacks) 2006年7月4日18:49星期二[原创]

苏小勇 翻译 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);
}
});


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值