return to homepage.

three ways contact with meemail: contact with me using emailmsn: contact with me using msnQQ: contact with me using QQ

欢迎自由转载,但请注明本blog链接,谢谢合作。

文章分类

成长,转载 (1) 地税 (1) 健康 (2) 趣闻 (1) 生活杂记 (11) 转载 (4) CSS (1) Design Patterns (1) DWR (3) EJB (1) Hibernate (2) javascript (2) Jsp (2) NBA (1) Oracle (2) Struts (4) Tomcat (1) Weblogic (1) XML (1)

2007年4月18日星期三

JS闭包特性在DWR中的应用

var dataFromBrowse = "data from browse";
function callBackProxy(dataFromServer) {
callbackFun(dataFromServer, dataFromBrowse);
};
function callbackFun(dataFromServer, dataFromBrowse) {
alert(dataFromBrowse);
alert(dataFromServer);
};
function say() {
var data;
data = DWRUtil.getValue("content");
helloworld.sayHello(data,callBackProxy);
}

本来我们是用helloworld.sayHello(data,你的回调函数名)来实现的。
但,如果我们想在client这边给我们的回调函数多一些参数,以实现多一些功能,而不仅仅在页面只能利用server端给我们发来的一个数据data,就要用上面的方法。

原理是这样的,我们还是在helloworld.sayHello(data,callBackProxy)填写了一个回调函数,不过它只是一个代理函数,真正做事的是callbackFun,它由callBackProxy在里面调用它。
而这时由于闭包的特性,内函数可以用到外函数的参数变量,所以就实现了多参数的功能。

1 评论:

匿名 说...

hou zi bie