如何解决多个ajax页面请求,页面loading阻塞问题
程序员文章站
2022-03-17 19:49:59
...
在项目中碰到多个ajax加载,loading加载出现问题,没有能第一时间加载出来。
主要原因是因为:浏览器的渲染(UI)线程和js线程是互斥的,在执行js耗时操作时,页面渲染会被阻塞掉。当我们执行异步ajax的时候没有问题,但当设置为同步请求时,其他的动作(ajax函数后面的代码,还有渲染线程)都会停止下来。即使我的DOM操作语句是在发起请求的前一句,这个同步请求也会“迅速”将UI线程阻塞,不给它执行的时间。这就是代码失效的原因。
1.是把同步改写成异步,并且把多个ajax请求嵌套在一起。,在成功之后再去调用另外一个ajax请求,这样子就不会因为第一个请求先结束,把第二个请求loading给屏蔽掉。
2.是使用jquery的Deferred对象,jQuery在1.5版本之后,引入了Deferred对象,提供的很方便的广义异步机制。
3.用定时器setTimeout() 或者setinterval()函数去定时查看是否ajax都返回成功。
以上就是如何解决多个ajax页面请求,页面loading阻塞问题的详细内容,更多请关注其它相关文章!
推荐阅读
-
解决微信返回上一页,页面中的AJAX的请求,对Get请求无效的问题
-
基于Jquery 解决Ajax请求的页面 浏览器后退前进功能,页面刷新功能实效问题_jquery
-
基于Jquery 解决Ajax请求的页面 浏览器后退前进功能,页面刷新功能实效问题_jquery
-
javascript - Ajax实现的长轮询如何才能不阻塞同一时间内页面的其他Ajax请求(同域请求)呢?
-
解决微信返回上一页,页面中的AJAX的请求,对Get请求无效的问题
-
javascript - Ajax实现的长轮询如何才能不阻塞同一时间内页面的其他Ajax请求(同域请求)呢?
-
nginx - 页面异步多个http请求,php后台接口响应慢,如何进行问题定位?
-
解决微信返回上一页,页面中的AJAX的请求,对Get请求无效的问题
-
nginx - 页面异步多个http请求,php后台接口响应慢,如何进行问题定位?
-
解决微信返回上一页,页面中的AJAX的请求,对Get请求无效的问题