分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

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

发布时间:2023-09-06 02:28责任编辑:郭大石关键词: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采用了默认的异步就会出现数据处理错误的现象*/

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

原文地址:https://www.cnblogs.com/yxdmoodoo/p/10221741.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved