`

DWR调用时由主调函数内传值到回调函数内

    博客分类:
  • DWR
阅读更多
//用于获取<Select>的数据
function fillSelectData(nodes,elem,curValue){
	dwr.util.addOptions(elem, nodes, "value","text");
	dwr.util.setValue(elem,curValue);
}

function fetchAllSelectData(){
	var selects = document.getElementsByTagName("SELECT");
	for(var i=0; i<selects.length; i++){
		var elem = selects[i];
		var datasrc = elem.getAttribute("datasrc");
		if(datasrc){
			var id = elem.id;

			var curValue = elem.getAttribute("curValue");
			var fn = new Function("nodes", "fillSelectData(nodes,'" + id + "','" + curValue +"')" );
			DWRSelectDataHelper.getData(datasrc,fn);
		}
	}
}
window.onload = fetchAllSelectData;

这个是在页面加载时用DWR读取数据到SELECT中。
由于要在调用了方法之后传值给回调函数,所以回函数写成了var fn = new Function("nodes", "fillSelectData(nodes,'" + id + "','" + curValue +"')" );
nodes为第一个参数,也是调用的类的返回的参数,id和curValue 是传给回调函数的参数。
这里是我的理解,fn就是一个Function。在new Function的时候,nodes是fn的一个参数,fn的方法体又是另一个方法,即fillSelectData,并把nodes当做fillSelectData的第一个参数传给fillSelectData。DWRSelectDataHelper.getData(datasrc,fn);当执行这句的时候,getData方法返回了一个返回值,然后调用回调函数fn,并把返回值当做fn的参数,即把返回值填充到nodes里面,然后再调用fn里面的fillSelectData方法,并把返回值nodes传过去。

这个网址里有关于new Function的介绍。
http://www.permadi.com/tutorial/jsFunc/index.html
function createMyFunction(myOperator)
{
  return new Function("a", "b", "return a" + myOperator + "b;");
}

var add=createMyFunction("+");                // creates "add" function
var subtract=createMyFunction("-");           // creates "subtract" function
var multiply=createMyFunction("*");           // created "multiply" function
// test the functions
alert("result of add="+add(10,2));            // result is 12
alert("result of substract="+subtract(10,2)); // result is 8
alert("result of multiply="+multiply(10,2));  // result is 20
alert(add);
分享到:
评论

相关推荐

    dwr回调函数得到后台list

    Direct Web Remoting (DWR) 是一种在Java服务器和JavaScript之间进行实时通信的技术,它允许在客户端的JavaScript中调用服务器端的Java方法,并将结果返回到JavaScript中。在这个场景中,我们关注的是如何在DWR回调...

    DWR 取得回调函数返回值案列

    在DWR中,当前端调用后端Java方法时,可以通过回调函数来接收返回的数据。回调函数是一种异步处理机制,它能够使前端在不阻塞的情况下等待后端处理完成,并获取结果。 #### 三、案例分析 根据提供的部分代码内容,...

    修改后的dwr框架无需回调函数

    然而,“修改后的dwr框架无需回调函数”意味着这个封装后的版本可能已经内置了处理响应的机制,从而省去了开发者手动编写回调函数的步骤。这种改进提高了代码的可读性和可维护性,减少了出错的可能性。 在这个框架...

    Ext tree 结合dwr 调用后台数据

    此外,可能还需要编写一些JavaScript逻辑来处理DWR回调,包括错误处理和数据的插入或更新。 为了调试和优化,你可以利用DWR提供的Console工具,监控和测试DWR调用。同时,Ext JS也提供了丰富的API和事件,可以帮助...

    dwr 各种调用方法

    配置与无参数调用类似,但在JavaScript端,调用Java方法时需要提供一个回调函数来处理返回值。如`callTestMethod2`函数中,调用`testMethod2`并传递`callBackFortestMethod2`作为回调函数,当Java方法执行完毕后,`...

    DWR调用及传参总结

    当Java方法返回List、Set或Map时,如`callTestMethod6`,返回的数据可以通过回调函数`callBackFortestMethod6`获取。如果列表元素是基本类型或特定复杂类型,无需在`dwr.xml`中特别声明。 7. **有List、Set或Map...

    DWR的配置和传值DWR的配置和传值

    在这个例子中,DWR自动处理了参数的序列化和反序列化,以及异步调用的回调函数。 5. **安全性**: 在生产环境中,确保关闭调试模式,因为公开的调试页面可能暴露敏感信息。同时,你还可以通过DWR的安全特性,如IP...

    dwr调用带集合返回值的方法

    可以使用DWR提供的错误处理机制,如全局错误处理器或在每个方法调用中添加错误回调。 6. **性能优化**: 如果返回的集合非常大,可能会影响页面性能。考虑分页加载数据,或者只返回必要的集合部分,以减少网络传输和...

    dwr测试,java调用js

    这需要在前端设置一个回调函数,并在DWR配置中声明。当服务器需要执行这个函数时,它可以通过DWR引擎发送一个请求,客户端接收到请求后会执行对应的JavaScript代码。 在“DwrTest”这个压缩包文件中,很可能是包含...

    dwr实例,JavaScript调用java方法的小例子

    7. **回调函数**:在JavaScript中调用Java方法时,可以指定回调函数来处理返回的结果。这使得异步操作的处理变得简单,因为结果会在服务器准备好后自动传回给JavaScript。 8. **错误处理**:DWR提供了内置的错误...

    springboot整合dwr实现js调用java方法

    SpringBoot整合Direct Web Remoting (DWR)是一个常见的技术实践,它允许JavaScript在浏览器端直接调用服务器端的Java方法,极大地增强了Web应用的交互性。在这个过程中,我们通常会结合使用FreeMarker或JSP作为视...

    dwr2.0修改包 调用函数控制台不打印日志信息

    轮询调用dwr每次都打日志量太大又没有实际意义,把每次调用时打印的info日志给屏蔽了。轮询调用的时候控制台就没有日志信息了

    关于javascript 回调函数中变量作用域的讨论

    1、背景 Javascript中的回调函数,相信大家都不陌生,最明显的例子是做Ajax请求时,提供的回调函数, 实际上DOM节点的事件处理方法(onclick,ondblclick等)也是回调函数。 在使用DWR的时候,回调函数可以作为第一个...

    高级dwr方法调用少用的

    在JavaScript端,调用方法时传递一个回调函数,例如`callBackFortestMethod2`,这个函数将在Java方法执行完毕并返回结果后被调用。 3. **调用有简单参数的JAVA方法** 调用带有参数的Java方法,你需要在JavaScript...

    dwr的远程批量调用

    - 如果批量调用在规定时间内没有完成,将会触发超时事件,可以通过回调函数进行处理。 - **超时处理:** - 当批量调用超过指定的超时时间时,可以通过提供`errorHandler`回调函数来处理超时情况,例如: ```...

    DWR反向调用

    2. **服务器处理**:DWR服务器端接收到请求后,会将调用转发到对应的Java方法。 3. **方法执行**:Java方法在服务器上执行,处理业务逻辑。 4. **结果返回**:执行结果被转换为JavaScript对象,然后通过HTTP响应返回...

    DWR中各种java方法的调用

    ### DWR中各种Java方法的调用:深入解析与实践 DWR,全称为Direct Web Remoting,是一个创新的框架,旨在简化JavaScript调用Java方法的过程。它利用Ajax技术,实现了网页上的动态交互,无需页面刷新即可更新内容,...

    远程调用Dwr

    4. **响应回传**:服务器将结果返回给客户端,DWR库会自动解析这个响应,并调用预先注册的回调函数来处理结果。 5. **安全控制**:DWR提供了安全机制,如白名单、CSRF保护等,防止未授权的调用。 **DwrSampleApp...

    DWR的基本原理以及前后台互相调用并整合SPRING的简易DEMO

    DWR简化了AJAX开发,使开发者能够像调用本地函数一样调用远程服务,极大地提高了用户体验。 在这个“DWR的基本原理以及前后台互相调用并整合SPRING的简易DEMO”中,我们将探讨DWR的核心概念和如何将它与Spring框架...

    dwr操作,直接调用后端,动态局部刷新,回调处理

    在DWR中,当远程方法执行完毕,DWR会自动调用预定义的回调函数,将结果传递给前端。这使得开发者可以方便地处理异步调用的结果,如更新UI或处理错误。回调函数通常包含两个参数:`data`(返回的数据)和`error`...

Global site tag (gtag.js) - Google Analytics