博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决多个ajax页面请求,页面loading阻塞问题
阅读量:4599 次
发布时间:2019-06-09

本文共 497 字,大约阅读时间需要 1 分钟。

在项目中碰到多个ajax加载,loading加载出现问题,没有能第一时间加载出来。

主要原因是因为:浏览器的渲染(UI)线程和js线程是互斥的,在执行js耗时操作时,页面渲染会被阻塞掉。当我们执行异步ajax的时候没有问题,但当设置为同步请求时,其他的动作(ajax函数后面的代码,还有渲染线程)都会停止下来。即使我的DOM操作语句是在发起请求的前一句,这个同步请求也会“迅速”将UI线程阻塞,不给它执行的时间。这就是代码失效的原因。

1.是把同步改写成异步,并且把多个ajax请求嵌套在一起。,在成功之后再去调用另外一个ajax请求,这样子就不会因为第一个请求先结束,把第二个请求loading给屏蔽掉。

 

 

2.是使用jquery的Deferred对象,jQuery在1.5版本之后,引入了Deferred对象,提供的很方便的广义异步机制。

详情可参看阮一峰老师的这篇文章。

3.用定时器setTimeout() 或者setinterval()函数去定时查看是否ajax都返回成功。

 

转载于:https://www.cnblogs.com/solitaryYang/p/7646426.html

你可能感兴趣的文章
Go语言最佳实践——异常和错误
查看>>
Tracer使用
查看>>
ORA-00600 3020 ORA-10567案例
查看>>
Spring Batch Hello World Example(一)
查看>>
Robot Framework web测试demo
查看>>
php不用正则表达式获取文章A标签链接的方法
查看>>
doubango框架阅读计划
查看>>
c# winform 操作oracle数据库,把图片存储到数据库,保存图片到数据库
查看>>
php mysql 中文乱码解决,数据库显示正常,php调用不正常
查看>>
JSP概述
查看>>
解决写不出代码的方法
查看>>
Linux 添加PPA源
查看>>
用正则表达式匹配用rdf3x处理过后的TTL格式文档
查看>>
Quartz定时器+Spring + @Autowired注入 空指针异常
查看>>
repeater练习
查看>>
BBC micro:bit 学习资源汇总(最近更新2019年1月6日....)
查看>>
QEMU-KVM中的多线程压缩迁移技术
查看>>
Druid的简介
查看>>
JAVA父类引用指向子类的对象意思
查看>>
(贪心)加油站绕圈问题
查看>>