您当前的位置: 首页 >  html
  • 0浏览

    0关注

    1477博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

软件工程小施同学 发布时间:2019-11-03 11:17:18 ,浏览量:0

功能:使用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执行成功之后,再调用自己执行下一次

关注
打赏
1665320866
查看更多评论
立即登录/注册

微信扫码登录

0.0435s