微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ajax异步提交 有时会出现无bug的数据处理异常-----debug没有问题,正常运行却数据处理不正确,极少机会会出现正常的处理结果

ajax  被使用时,常认的就使用了异步处理。

当遇到后面的代码对同样的数据进行处理 或 要依赖前面ajax处理的结果时,就会导致数据处理结果不正确,未达到预期值。

且,debug时却能正常完成功能,得到预期值。再就是多次测试,又有很少的机会会出现正确数据结果。

 

这就是ajax异步和同步的问题,

debug时 程序一直处于同步的过程中执行代码。所以设置的异步被无效化,看不到数据处理的异样。

不debug时,就会出现数据处理的顺序不对,导致结果不对。

解决方法就是将ajax的属性async  改为 false  即:同步

 

//jquery的async:false,这个属性 
//认是true:异步,false:同步。

function submit_adjust(){
            $.ajax({
                  type: "post",url: basePath + "/provinceKpi/submitAdjust.do",contentType: "application/json; charset=utf-8",data:JSON.stringify($(#form_dialog).serializeObject()),dataType: JSON,async: false,success: function (data) {
                      alert("调整成功,并记录!");
                  },error: function () {
                      alert(调整数据提交失败);
                  },complete: function () {

                  }
              });
        }
//调整按钮的点击事件
function adjustment(){
     BootstrapDialog.show({
         title: kpi数据调整,size :BootstrapDialog.SIZE_WIDE,message: $(<div></div>).load(basePath + /provinceKpi/dialog/adjust_dialog.do,{limit: 25},function(data){
         }),buttons: [
                   {
                       label: 确认调整,action: function(dialog) {
                           if(confirm("确认调整?")){
                               submit_adjust();
                               dialog.close();
                               $("#grid").bootstrapTable(refresh);
                           }
                       }
                   },{
                       label: 关闭,action: function(dialog) {
                           dialog.close();
                       }
                   }]
     });
}

//上面代码是我在开发中遇到的   
/*调用submit_adjust()方法,然后 接着又刷新了列表,这两个方法处理的是同一个表的数据,如果ajax采用了认的异步就会出现数据处理错误的现象*/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐