zoukankan      html  css  js  c++  java
  • 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采用了默认的异步就会出现数据处理错误的现象*/
  • 相关阅读:
    MATLAB矩阵操作【z】
    matlab绘图方法[z]
    Drawhere 有趣的网页涂鸦工具【z】
    DemoHelper,针对电脑演示的小工具
    Matlab Matrix [z]
    MATLAB函数参考[z]
    计算几何常用算法概览[z]
    matlab命令行环境的常用操作[z]
    不常见数学符号或简写
    matlab加入上级路径和本级路径的方法
  • 原文地址:https://www.cnblogs.com/yxdmoodoo/p/10221741.html
Copyright © 2011-2022 走看看