苏小勇 翻译 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); } }); |
|
相关推荐
在这个场景中,我们关注的是如何在DWR回调函数中处理从服务器返回的`List<Bean>`类型的数据。 首先,我们需要在服务器端定义一个Java方法,该方法会返回一个`List<Bean>`。例如,假设我们有一个名为`User`的Java ...
通过JSON,服务器端可以将复杂的数据结构(如对象、数组等)转换为字符串发送给前端,前端再将其解析回JavaScript对象,从而方便地在JavaScript中使用。 "后台给前台可以返回各种格式"表明这个框架不仅限于JSON,还...
- **调用Java方法**:通过`JTest.getString(callBackFun)`调用Java方法`getString`,并传递回调函数`callBackFun`作为参数。 - **恢复异步模式**:调用完成后,恢复DWR的异步模式`DWREngine.setAsync(true)`。 - **...
- 使用DWR提供的回调函数处理响应数据。 8. **学习资源**: - 该中文文档将详细介绍DWR的安装、配置、使用方法以及常见问题的解决,是学习DWR的重要参考资料。 通过深入学习这份DWR中文文档,开发者不仅可以掌握...
3. **暴露Java方法给客户端**: - 在`dwr.xml`配置文件中,声明这个Java方法为可远程调用,指定允许访问的类和方法。 4. **前端JavaScript**: - 在HTML页面中,使用JavaScript(可能是通过jQuery或其他库)在...
在你提供的实例中,“dwr实例,从后台取数据显示”表明这是一个使用DWR从服务器获取数据并在前端展示的简单应用。 1. **DWR的工作原理**:DWR通过在服务器上设置一个代理,允许JavaScript调用Java方法,就像它们是...
如`callTestMethod2`函数中,调用`testMethod2`并传递`callBackFortestMethod2`作为回调函数,当Java方法执行完毕后,`callBackFortestMethod2`会接收到返回的数据。 3. **有简单参数的Java方法调用** 参数的传递...
**8.3 传递额外的数据到回调函数**:除了基本的返回结果外,还可以传递其他数据到回调函数,增强应用程序的功能性和灵活性。 **8.4 从其他URL读取数据**:DWR不仅支持从本地服务器获取数据,还可以跨域调用其他...
#### DWR中的JavaScript - **简单的回调函数**:介绍如何使用DWR进行异步调用,并在调用完成后执行回调函数。 - **调用元数据对象**:元数据对象包含关于服务和方法的信息,可以用来动态生成客户端调用代码。 DWR...
- **Callback Function**:服务器端方法执行完毕后,通过回调函数处理返回结果。 5. **高级特性**: - **Batching**:批量调用,一次发送多个请求到服务器,减少网络往返次数。 - **Polling**:轮询机制,客户端...
7. **事件处理与回调**:在JavaScript中,DWR提供了事件监听器和回调函数,使得用户可以自定义在远程调用成功或失败时的行为。 8. **错误处理与调试**:文档会介绍如何处理DWR调用过程中出现的错误,以及如何开启...
1. **处理List**: 当Java方法的参数是一个`List`时,JavaScript端可以将对象包装在数组中传递。例如,如果你有一个包含用户信息的`List`,在JavaScript中可以这样创建数据: ```javascript var users = [ {username...
5. **处理回调**: 服务器响应后,DWR会调用预先定义的回调函数,将结果传递给前端进行处理。 在提供的文件中,`DWR 中文帮助.pdf`可能包含了DWR的详细文档和使用指南,帮助开发者更好地理解DWR的配置和API。`总结...
例如,可以创建一个`DBService`,包含`select`, `insert`, `update`, `delete`等方法,然后在JavaScript中通过DWR调用这些方法进行数据操作。 4. **DWR配置** 配置DWR主要包括以下步骤: - 添加DWR库到项目类路径...
在DWR中,可以通过`callRemoteMethod()`方法指定要调用的Java方法,同时传递参数。而GET请求通常用于获取数据,它将参数附在URL后面,适合于少量、非敏感的数据传输。DWR同样支持GET请求,但在处理复杂或大量数据时...
6. **批量调用与回调**:DWR支持批量调用多个服务器方法,并且可以在一个回调函数中处理所有结果。这对于处理大量数据或执行多个操作的场景非常有用。 7. **DWR的事件机制**:DWR提供了一套事件监听系统,允许你在...
DWR (Direct Web Remoting) 是一种用于在Web应用程序中实现AJAX技术的框架,它允许JavaScript直接调用服务器端的Java方法,从而实现实时的动态数据交换。以下是对DWR调用及传参方式的详细说明: 1. **无返回值和...
1. **DWR基本概念**:DWR的核心是远程方法调用(Remote Method Invocation,RMI),它允许JavaScript在浏览器中直接调用服务器上的Java方法。这种技术被称为Ajax(Asynchronous JavaScript and XML),但DWR不仅限于...
通过上述示例可以看出,在DWR中处理List、Set和Map等集合类型的关键在于正确配置DWR XML文件,并编写合适的客户端JavaScript代码来调用服务端的方法及处理返回的数据。这种方式大大简化了前后端之间的数据交换过程,...