javascript中直接取得DWR方法的返回值
2008-09-03 17:05
423 查看
一般在页面中要取DWR方法的值的做法是
function test(){
dwrTest.hello(function(data){alert(data)})
}
当你的javascript的test方法要返回这个值时就不好办了。因为DWR方法返回值是执行完后通过调用指定的函数将值返回。这们的话,我们往往会这么做
function test(){
var result;
dwrTest.hello(function(data){result=data})
return result;
}
上面的代码在使用的时候会发现它的返回值为"undefined",分析一下
dwrTest.hello(function(data){result=data})
这一句中“function(data){result=data}"这个方法是一个传给dwrTest.hello的一个参数,是由hello方法执行完后再调用的,所以在test()中并不会执行,就直接返回了一个未初始化的"result"。
实际上这就是一个异步处理过程,而javaScript默认是同步执行的。
我们只要把上面的代码改成:
Code
function test(){
var result;
DWREngine.setAsync(false);
dwrTest.hello(function(data){result=data})
DWREngine.setAsync(true);
return result;
}
这样JavaScript执行的时候就会等待"dwrTest.hello"执行完毕后再执行接下来的语句,这时我们就可以直接取得返回值了。
function test(){
dwrTest.hello(function(data){alert(data)})
}
当你的javascript的test方法要返回这个值时就不好办了。因为DWR方法返回值是执行完后通过调用指定的函数将值返回。这们的话,我们往往会这么做
function test(){
var result;
dwrTest.hello(function(data){result=data})
return result;
}
上面的代码在使用的时候会发现它的返回值为"undefined",分析一下
dwrTest.hello(function(data){result=data})
这一句中“function(data){result=data}"这个方法是一个传给dwrTest.hello的一个参数,是由hello方法执行完后再调用的,所以在test()中并不会执行,就直接返回了一个未初始化的"result"。
实际上这就是一个异步处理过程,而javaScript默认是同步执行的。
我们只要把上面的代码改成:
Code
function test(){
var result;
DWREngine.setAsync(false);
dwrTest.hello(function(data){result=data})
DWREngine.setAsync(true);
return result;
}
这样JavaScript执行的时候就会等待"dwrTest.hello"执行完毕后再执行接下来的语句,这时我们就可以直接取得返回值了。
相关文章推荐
- javascript中直接取得DWR方法的返回值
- javascript通过元素id和name直接取得元素的方法
- javascript通过元素id和name直接取得元素的方法
- AJAXRPC: javascript直接调用服务端方法
- MVC导出数据到EXCEL新方法:将视图或分部视图转换为HTML后再直接返回FileResult
- javascript返回前一页的两种方法
- 转载 OS js oc相互调用(JavaScriptCore) ---js调用iOS ---js里面直接调用方法
- Javascript刷新其他Frame,取得其他FrameURL的方法
- [JavaScript][DWR]DWRUtil.addOptions() 方法详解
- 在C# winform程序中直接执行javascript,调用javascript方法
- javascript中直接写php代码的方法
- 通过javascript直接实现jQuery的$(".class1")方法
- JavaScript返回网页中超链接数量的方法
- JavaScript中执行function方法,并返回执行结果
- javascript中使用ajax异步验证数据库后方法return true时总是返回undefined
- linux 不回车直接读取一个字符的方法(termios结构的描述了终端的模式,在这段代码中我们改变了它,使得终端能够接收到键盘输入马上返回。)
- 一种Javascript解释ajax返回的json的好方法
- 使用前端使用jQuery获取 在apsx页面的page_load方法直接返回json数据
- Ext中读取DWR方法调用返回的XML字符串
- JavaScript返回上一页并自动刷新的方法