ajax中的代码不执行,ajax同步导致ajax上面的代码不执行?

简介这篇文章主要介绍了ajax同步导致ajax上面的代码不执行?以及相关的经验技巧,文章约743字,浏览量496,点赞数1,值得参考!

js代码:

环境:IE11

要求:点击一个按钮后,页面xxx的地方立即显示"开始处理...",直到ajax处理结束后,xxx内容才更新为新的处理结果;

点击事件执行代码如下:

xxx.innerHTML="开始处理...";

$.ajax(...async:false,...);//ajax同步

问题:

点击按钮后,页面上并没有显示"开始处理...";而是在ajax执行完后,页面xxx位置直接显示处理后的结果;

个人解析:

js执行innerHTML到页面显示"开始处理..."是2个动作,一个是js执行,一个是浏览器渲染,中间有个时间差,

js执行完innerHTML后,页面上还没来得及显示"开始处理..."时,js就执行到了ajax部分,而ajax同步会导致锁定浏览器,表现为页面内容不会更改;

当ajax执行回调函数时,对xxx内容进行二次赋新值,所以在"开始处理..."还未显示时,由于此时xxx已经更新为新值,页面之后直接显示为新值;

如何让页面在执行ajax期间显示innerHTML中的内容"开始处理..."?

设置1个定时器,在innerHTML后延迟100ms再执行ajax;即:

xxx.innerHTML="开始处理...";

setTimeout(function(){

$.ajax(...async:false,...);//ajax同步

},100);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值