再次使用到了DWR没办法,遇到怎么把多个参数传递到回调函数里面的问题,有点棘手,嘿嘿不过不怕,先找百度,查了半天找到了,嘿嘿,我就先做个记录。
function getXMLData(id){
ReadXML.readTestXML(callback);
}
var callback = function callBack(data){
alert(id);
alert(data[id-1].devType);
alert(data[id-1].ipAddress);
alert(data[id-1].serverPort);
alert(data[id-1].username);
alert(data[id-1].password);
}
getXMLData("5");
其实这样子的写法,alert(id) 会提示你id未定义的。
那么怎么解决呢??
function getXMLData(id){
ReadXML.readTestXML(function(data){callback(data,id)});
}
var callback = function callBack(data,id){
alert(id);
alert(data[id-1].devType);
alert(data[id-1].ipAddress);
alert(data[id-1].serverPort);
alert(data[id-1].username);
alert(data[id-1].password);
}
id 就可以弹出了来了,就这样就可以传递多个参数了,其实后面加上id,name,pwd都可以传递。
还有一个问题就是怎么解决在回调函数中把我从服务端取回的数据,取到其他的函数中去使用,
这里你就可以采用拼接字符串的方式,做成一个table 然后放到一个div里面去,但是这个div可以设置成不显示,
然后你就可以通过getElementById()的方式去取到你在回调函数中的数据了。
function getXMLData(id){
ReadXML.readTestXML(function(data){callback(data,id)});
}
var callback = function callBack(data,id){
if(id!=0){
var table = "<TABLE><TR><TD id=\"type\">"+data[id-1].devType+"</TD></TR>
<TR><TD id='ip'>"+data[id-1].ipAddress+"</TD></TR>
<TR><TD id='port'>"+data[id-1].serverPort+"</TD></TR>
<TR><TD id='user'>"+data[id-1].username+"</TD></TR>
<TR><TD id='pwd'>"+data[id-1].password+"</TD></TR></TABLE>";
document.getElementById("div").innerHTML=table;
document.getElementById("div").style.display='none';
}
}
function play(){
var ip=document.getElementById("ip").innerHTML;
var username=document.getElementById("user").innerHTML;
var ports=document.getElementById("port").innerHTML;
var pwd=document.getElementById("pwd").innerHTML;
var chan=index;
var type=document.getElementById("type").innerHTML;
alert(ip);
alert(username);
alert(ports);
alert(pwd);
alert(chan);
alert(type);
}
ok 采用这种方式你就可以取到回调函数中的从服务器端返回的数据了。
分享到:
相关推荐
- 使用DWR提供的回调函数处理响应数据。 8. **学习资源**: - 该中文文档将详细介绍DWR的安装、配置、使用方法以及常见问题的解决,是学习DWR的重要参考资料。 通过深入学习这份DWR中文文档,开发者不仅可以掌握...
**8.3 传递额外的数据到回调函数**:除了基本的返回结果外,还可以传递其他数据到回调函数,增强应用程序的功能性和灵活性。 **8.4 从其他URL读取数据**:DWR不仅支持从本地服务器获取数据,还可以跨域调用其他...
- **Callback Function**:服务器端方法执行完毕后,通过回调函数处理返回结果。 5. **高级特性**: - **Batching**:批量调用,一次发送多个请求到服务器,减少网络往返次数。 - **Polling**:轮询机制,客户端...
- **回调函数**:DWR支持异步调用,可以通过回调函数处理结果或错误。 - **类型转换**:DWR自动处理Java和JavaScript之间的类型转换,简化开发。 5. **DWR案例分析** - **实时数据更新**:例如股票价格、天气...
配置与无参数情况相同,但需要在JavaScript中定义接收返回值的回调函数。例如,`callTestMethod2`调用`testMethod2`并传递`callBackFortestMethod2`作为回调函数,此函数将接收到`testMethod2`的返回值。 3. **有...
如`callTestMethod2`函数中,调用`testMethod2`并传递`callBackFortestMethod2`作为回调函数,当Java方法执行完毕后,`callBackFortestMethod2`会接收到返回的数据。 3. **有简单参数的Java方法调用** 参数的传递...
DWR提供了回调函数机制,当服务器响应时,会调用预先定义的JavaScript函数,将结果传递给该函数处理。 3. **JavaBean操作**: DWR可以轻松地与JavaBean进行交互。在服务器端,你可以创建一个JavaBean,包含你需要...
在这个例子中,`startListening`函数开启了一个DWR长连接,每隔5秒向服务器发送一次心跳请求,服务器在有新数据时会调用`getNewData`的回调函数,更新页面上的数据显示。 总结来说,DWR长连接是实现Ajax实时通信的...
4. **JavaScript API**:DWR提供了丰富的JavaScript库,如`DWREngine`、`DWRUtil`和`RemoteProxy`等,它们用于初始化DWR引擎、执行远程调用、处理回调函数以及错误处理等。 5. **安全性**:DWR允许用户定义安全策略...
在这个示例中,`uploadFiles`函数收集所有选定的文件,并通过DWR调用服务器端的`uploadFiles`方法。文件是以Blob形式传递的,因此服务器端可以接收到原始的文件数据。 为了优化用户体验,可以考虑使用jQuery或类似...
**5.1 简单的回调函数**:介绍了如何使用DWR的回调函数来进行异步数据交换。 **5.2 调用元数据对象**:通过调用元数据对象来获取服务器端方法的信息,以便客户端动态生成调用代码。 以上是对DWR中文文档的核心知识...
例如,在JavaScript中,你可以创建一个名为`DwrTime`的实例,然后调用它的`currentlyTime`方法,该方法接受一个字符串参数和一个回调函数。当`currentlyTime`方法在服务器端执行完成并返回结果后,回调函数会被调用...
注意回调函数只能有一个参数,就是服务器的返回值,如function(messFromServer),这里messFromServer是该操作在服务器上的返回值. 4.. util.js里面有很多有用的方法,最好熟悉一下. 5.. convert并不是必须的,...
在这个例子中,DWR自动处理了参数的序列化和反序列化,以及异步调用的回调函数。 5. **安全性**: 在生产环境中,确保关闭调试模式,因为公开的调试页面可能暴露敏感信息。同时,你还可以通过DWR的安全特性,如IP...
在DWR中,当远程方法执行完毕,DWR会自动调用预定义的回调函数,将结果传递给前端。这使得开发者可以方便地处理异步调用的结果,如更新UI或处理错误。回调函数通常包含两个参数:`data`(返回的数据)和`error`...