0 0

dwr.engine.setAsync(false) 设置dwr同步无效的解决方案?3

大家好,正如这个链接所说:http://g.kehou.com/t1008465554.html,dwr.engine.setAsync(false) 将dwr设置同步存在无效的情况,在这种情况下,有什么好的解决方案呢?

问题补充:这个问题是dwr自身的bug,在3.0版本中已解决了。我解决这个问题的方法是:放弃使用dwr获取数据,采用JQuery的$.post()方法来获取数据,在Action的方法中,把要返回的值直接写入到response中,代码如下:
HttpServletResponse response = ServletActionContext.getResponse();
response.setCharacterEncoding("UTF-8");
response.getWriter().write(progressRate);

代码中的progressRate是要返回的值。
谢谢这位架构师的点评。
DWR 
2011年8月10日 16:48

1个答案 按时间排序 按投票排序

0 0

那你就把同步的代码放到回调函数里执行就可以了

比如
你原来的逻辑是
var xx= '123';
dwraaservice.save(xx,function(){});
abc();
cdf();

现在因为像你说的有些情况异步失效
那你就把代码改成

var xx='123';
dwraaservice.save(xx,function(){
abc();
cdf();
});

如果abc也是AJAX需要同步
那就再往里嵌套一层

var xx='123';
dwraaservice.save(xx,function(){
abc(function(){
cdf();
});

});

2011年8月10日 21:35

相关推荐

Global site tag (gtag.js) - Google Analytics