业务场景:点击一个按钮的时候保存数据,同时打开一个弹窗带出保存的数据

基于这样的业务场景,最近遇到一个问题,是在ie11才发现的,点击按钮时候,后台打断点加数据库查询都验证数据是保存正确的,不过已经保存的数据是带不到弹窗页面的,问题比较奇怪,排查了挺长时间,最开始因为在ie才能重现的问题,在极速模式的360浏览器是没问题的,而且第一次点击时候没带出数据,第二次点击时候才可以带出数据,然后很容易让人联想到ie的缓存问题,不过调了大半天
加上ajax不缓存的代码,已经改成post请求,或者get请求连接后面加上一个时间戳参数都不奏效

$(function(){//ajax不缓存请求结果$.ajaxSetup({cache: false});});

然后经过和同事沟通,才发现自己跟错了方向,经过检查发现保存的方法是用异步的,问题就出现在这里了,首先验证是不是由于异步导致的,在保存数据代码和打开弹窗页面的代码之间加一个alert提示,发现果然,关联alert弹窗提示之后,数据正常带出,所以确定是因为异步导致的

保存的代码,注意async:true,,这里是异步的,之前可能是考虑性能问题,改成异步的

$.ajax({url:'${root}/saveOrUpdate.do',type:"post",async:true,success:function(result){...}});

所以经过一番调试,给出自己的方案,解决方法是用回调函数:

保存函数:

function saveRecord(seq,callback){$.ajax({url:'${root}/saveOrUpdate.do',type:"post",async:true,success:function(result){if(callback!=undefined){callback(true);}}});
}
    //保存成功,才会打开弹窗function main(seq){saveRecord(seq,callbackFunction);}/*保存时的回调函数*/function callbackFunction(saveSuccess){if(saveSuccess){//省略打开弹窗代码}}

Ajax系列之异步调用导致的不同步问题相关推荐

  1. 异步调用可以转化为同步调用吗?

    源起 小飞是一名刚入行前端不久的新人,因为进到了某个大公司,俨然成为了学弟学妹眼中'大神',大家遇到js问题都喜欢问他,这不,此时他的qq弹出了这样一条消息 "hi,大神在吗?我有个问题想问 ...

  2. 那些年我们一起追逐的多线程(Thread、ThreadPool、委托异步调用、Task/TaskFactory、Parallerl、async和await)

    一. 背景 在刚接触开发的头几年里,说实话,根本不考虑多线程的这个问题,貌似那时候脑子里也有没有多线程的这个概念,所有的业务都是一个线程来处理,不考虑性能问题,当然也没有考虑多线程操作一条记录存在的并 ...

  3. springboot定时发送短信_spring boot 1.5.4 定时任务和异步调用(十)

    1Spring Boot定时任务和异步调用 我们在编写Spring Boot应用中经常会遇到这样的场景,比如:我需要定时地发送一些短信.邮件之类的操作,也可能会定时地检查和监控一些标志.参数等. sp ...

  4. Spring Boot 中使用@Async实现异步调用,加速任务执行!

    欢迎关注方志朋的博客,回复"666"获面试宝典 什么是"异步调用"?"异步调用"对应的是"同步调用",同步调用指程序按照 ...

  5. odciexttableopen 调用出错 error open log_如何在 Spring 异步调用中传递上下文

    什么是异步调用? 异步调用是相对于同步调用而言的,同步调用是指程序按预定顺序一步步执行,每一步必须等到上一步执行完后才能执行,异步调用则无需等待上一步程序执行完即可执行.异步调用指,在程序在执行时,无 ...

  6. Spring Boot中使用@Async实现异步调用

    什么是"异步调用"? "异步调用"对应的是"同步调用",同步调用指程序按照定义顺序依次执行,每一行程序都必须等待上一行程序执行完成之后才能执 ...

  7. spring boot 1.5.4 定时任务和异步调用(十)

    1      Spring Boot定时任务和异步调用 我们在编写Spring Boot应用中经常会遇到这样的场景,比如:我需要定时地发送一些短信.邮件之类的操作,也可能会定时地检查和监控一些标志.参 ...

  8. delphi 异步 调用 带参数_如何在 Spring 异步调用中传递上下文

    什么是异步调用? 异步调用是相对于同步调用而言的,同步调用是指程序按预定顺序一步步执行,每一步必须等到上一步执行完后才能执行,异步调用则无需等待上一步程序执行完即可执行.异步调用指,在程序在执行时,无 ...

  9. SpringBoot异步调用

    2.1.无返回值的异步方法 2.1.有返回值的异步方法 3.1.方法级别重写Executor 3.2.应用级别重写Executor 3.3.自定义线程池配置 "异步调用"对应的是& ...

最新文章

  1. python2 队列的使用_使用2个队列创建堆栈
  2. mac securecrt程序无响应_如何重置mac上的系统管理控制器smc教程
  3. 基于单片机超声波测距系统的设计_一种基于UWB技术实现的测距防撞系统
  4. php ip 短时间 重复,php 限制同一个IP 一段时间不能评论多次,能给我详细解决的...
  5. 负载均衡、分布式、集群的关系
  6. 有了PSD分层模板|花卉海报设计其实很简单!
  7. codeforce Gym 101102A Coins (01背包变形)
  8. Docker Swarm 使用
  9. c#软件操作-cmd命令全解
  10. DWRUtil.addOptions
  11. 设计模式学习笔记(十四:单件模式)
  12. c语言编程帐薄结算,用C++语言设计个人帐薄管理系统最终版(备份存档)
  13. java窗口淡出_java淡入淡出式显示gui
  14. CMU Bomblab 答案
  15. 全国计算机vfp是什么,vfp是什么-你知VFP是什么东西吗?它是我们大学生必须上的计算机的一个章节的 爱问知识人...
  16. postSQL 正则表达式与like使用
  17. 佳博GP-L80180 打印机 win7下 驱动方式 打印
  18. Oracle 定时任务详解(dbms_job)
  19. linux下创建桌面快捷方式,简单快捷(ubuntu)
  20. zkPorter:Layer-2 的可组合可扩展性

热门文章

  1. CAD如何快速转换为PDF
  2. 重新理解pandas.DataFrame.ewm
  3. Jenkins自动化部署入门
  4. 尾矿库的安全警示——两次尾矿库溃坝遥感卫星图像过程回顾
  5. ALOS PALSAR 的DEM导入sarscape
  6. 嘉为鲸翼·多云管理平台荣获信通院可信云技术服务最佳实践
  7. 深入解析 multipart/form-data
  8. labelGo使用错误记录
  9. 《工厂订单出入库信息管理系统》完整案例详解(含演示网址账号)(GoVue源码MysqlRedis数据库)
  10. 【淘宝店铺】——开店篇