js ajax 同步 执行完js之后才执行插入html

功能:使用js分页,需要按顺序请求后台接口,并按先后顺序把后台得到的数据,使用js拼接html插入到指定位置。

方案:为了代码可读性,使用了一个for循环,依次调用同一个ajax请求函数(每次传入指定页码),将得到的数据拼接成html,插入到指定位置;为了保证顺序性,ajax设置为同步传输,期待能够顺序返回,顺序插入。

现象:所有的ajax请求都返回数据、拼接完数据之后,才执行了插入html,而不是返回一个数据,插入一个html

原因:浏览器有两个线程,js引擎(JS内核)线程和GUI线程,分别对应执行js和渲染页面(插入html就是渲染页面),这两个进程之间一个时间只能执行一个,所以如果ajax设置了是同步执行,那么浏览器就会一直执行js线程,等执行完,才会去执行插入html的操作。可以参考同事找到的原因:https://www.cnblogs.com/yiyi17/p/8645830.html

解决方案:ajax改成异步执行,不再使用外部循环调用ajax函数保证顺序,而是通过递归调用保证顺序,即上一个ajax执行成功之后,再调用自己执行下一次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软件工程小施同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值