以前一直用的是dwr2.x系列,因为js是同步处理机制,dwr默认是异步处理机制,所以通常的做法都是人为设置为同步:DWREngine.setAsync(false);这样就可以在得到返回值程序往下走,如果一个js函数中有多个需要从后台直接得到返回值,我们可以设置多个同步,在2.x里面是不存在问题的但是在3.0里面,我设置了多个同步,依然会有返回值为undefined的情况,但是在函数的任意位置加上个alert,就能正常获得返回值,dwr3.0的说明文档网上也很少,很是不解~
js函数代码如下:
function loadCheckbox()
{ var zxjl = <%=session.getAttribute("zxrwid")%>;
dwr.engine.setAsync(false);
checkboxAJAX.GetCheckBoxHtml(zxjl,function(data){innerH=data;});
dwr.engine.setAsync(true);
if(typeof innerH =='undefined')
{
innerH='';
}
dwr.engine.setAsync(false);
checkboxAJAX.GetHiddenValues('bm',function(data){xxu=data;});
dwr.engine.setAsync(true);
dwr.engine.setAsync(false);
checkboxAJAX.GetHiddenValues('zxrwmcsel',function(data){zxrwmcsel=data;});
dwr.engine.setAsync(true);
var str;
//alert(1);
if(xxu!=null&&zxrwmcsel!=null)
{
//alert("here");
str= writeChckboxList ('id','zxrwmcsel',xxu,zxrwmcsel,innerH,'130px','150px','50px');
}
else
{
str= writeChckboxList('id','zxrwmcsel','','',innerH,'130px','150px','50px');
}
document.getElementById("bm").innerHTML = str; }
js函数代码如下:
function loadCheckbox()
{ var zxjl = <%=session.getAttribute("zxrwid")%>;
dwr.engine.setAsync(false);
checkboxAJAX.GetCheckBoxHtml(zxjl,function(data){innerH=data;});
dwr.engine.setAsync(true);
if(typeof innerH =='undefined')
{
innerH='';
}
dwr.engine.setAsync(false);
checkboxAJAX.GetHiddenValues('bm',function(data){xxu=data;});
dwr.engine.setAsync(true);
dwr.engine.setAsync(false);
checkboxAJAX.GetHiddenValues('zxrwmcsel',function(data){zxrwmcsel=data;});
dwr.engine.setAsync(true);
var str;
//alert(1);
if(xxu!=null&&zxrwmcsel!=null)
{
//alert("here");
str= writeChckboxList ('id','zxrwmcsel',xxu,zxrwmcsel,innerH,'130px','150px','50px');
}
else
{
str= writeChckboxList('id','zxrwmcsel','','',innerH,'130px','150px','50px');
}
document.getElementById("bm").innerHTML = str; }
解决方案 »
- ckeditor4显示jsp文件内容问题。
- 关于用java实现网路语音聊天的问题??
- jsp+hibernate实现的投票系统代码
- JSP环境配置不知道哪里出了问题,请大家帮忙看看
- 在sun的网页上有一个不明白的地方
- 怎样取得生成表格的每个格的值和记录数(行数)?
- jsp+数据库连接错误!
- jsp中的oracle数据库问题
- 在JSP中更新数据库的UPDATE怎么进行动态使用?
- 将很大的对象写入ByteArrayOutputStream中,发生OutOfMemoryError,怎样处理?
- 在IE浏览器中导出execl直接打开是在浏览器中打开,在线等........................
- JSP中如何同时传递两个页面中不同的checkbox数组到数据库
alert(xxu);就会变成undefined~
我是不大信他的同步的,都是自己按照真实需要的顺序来调用方法的。你alert只是让他获得了取值的时间,中断了一下。
dwr.engine._async = false;
};