bupolongyi 2009-05-06 13:52
浏览 432
已采纳

DWR同步的疑惑

最近在做一个bpm的项目,有个表单需要用DWR远程调用另外一个系统的方法;但在调用过程中出现了问题,这个方法有时候调用得到,有时候又调用不到,觉得是异步请求的关系,所以在代码中将请求设置成了同步,即在调用方法的地方加上了 DWREngine.setAsync(false); 在方法结束的地方加上了DWREngine.setAsync(true); 但仍然出现调用不到得现象。
代码如下:
[code="java"]DWREngine.setMethod(DWREngine.ScriptTag);

dwr.engine._path = "http://10.0.1.99:7001/Contract/dwr/";

dwr.util._path = "http://10.0.1.99:7001/Contract/dwr/";

SubBankAJAX._path = "http://10.0.1.99:7001/Contract/dwr/";

DWREngine.setAsync(false);

var contextPath = "<%=contextPath%>";

var isSubmit = false;

var max_no = 0;

isForm = true;

//如果为核准按钮时累计金额累加,并要求财务附件上产,如为驳回则财务附件内容清除并付款状态更改

//获得表单

function getForm(){

return document.all.applyForm;

}

function getAdd(){

var i = 0;

var msg = "";

if (document.getElementById("cw_arriveDate").value.length != 10) {

i++;

msg = msg + i + ".收单日期未填写\n";

}

var cwAttachfiles = document.getElementById("max_no").value;   
if (cwAttachfiles == 0) {   
    i++;   
    msg = msg + i + ".财务附件未上传";   
}   
else {   
    document.getElementById("fileAttach").outerHTML = "<input   name='fileAttach'   type='file' value='' size='50' style='height: 20px'/>";   
}   
if (msg.length > 0) {   
    alert(msg);   
    return;   
}   
else {   
    DWREngine.setAsync(false);   
    SubBankAJAX.addPayment(document.getElementById("formEntity.contractNO").value, document.getElementById("formEntity.payMoney").value);   
    DWREngine.setAsync(true);   
}   
var form = getForm();   
form.operation.value = "release";   
if (form.onsubmit == null || form.onsubmit.call(form)) {   
    var elements = form.getElementsByTagName("input");   
    if (elements) {   
        for (var i = 0; i < elements.length; i++) {   
            if (elements[i].type == "button")    
                elements[i].disabled = "disabled";   
        }   
    }   
    form.submit();   
}   

} [/code]
而如果在AJAX请求的地方加上alert,则一定可以调用到;DWREngine.setAsync(false);这个方法会无效呢? 各位大侠哪位知道,告诉一下谢谢

  • 写回答

1条回答 默认 最新

  • iteye_5433 2009-05-07 10:40
    关注

    建议尽量用异步回调。
    同步的方法我好像没遇到这种情况,都是回调完成后顺序执行

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名