ajax async和Ztree

今天 在弄ztree 目录树的删除的时候;遇到了一个问题

问题:当我点击目录树删除图标 执行ajax后台 删除操作 当后台还未删除是否成功的信息是  页面上目录树就已经删除掉那个节点, 但后台数据库不一定成功删除

解决办法:我在  beforeRemove 执行 ajax删除操作 如果是error 返回false 如果是success 返回 true; 如果返回的是false, onRemove()就不会执行,节点就不会删除;

但是又有一个问题 就是ajax的执行顺序问题


function beforeRemove(treeId, treeNode) {
    var rel=confirm("确认删除 节点 -- " + treeNode.name + " 吗?");
    if(rel)
    {
    return delete(treeNode.id);
    }else{return rel;}
}

function delete(treeid){  //删除目录
    var rel;
     $.ajax({
         url: '',
         type: 'POST',
         //async:false,  
         dataType:'json',
         contentType : "application/json; charset=utf-8",
         data: JSON.stringify(param),
         success: function(data) {
             alert("删除成功");
             rel=true;
            },
        error: function(xhr, textStatus, errorThrown) {
            rel=false;
             }
     });
    return rel;
     }

问题2:rel可能是undefined;没有执行ajax里面的success 或者error 就执行return rel;

解决办法:加一个async:false, 这样页面会出现一个假死状态直到ajax里面的success 或者error执行完才会执行接下来的步骤


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值