热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Ajax的异步请求,可以帮助我们节省时间吗?

Ajax的异步请求,可以帮助我们节省时间吗?问题的来源是这样的,我正在做页面载入性能的优化,我把原来的4个同步执行的ajax请求改成了4个异步的.但是不能仅仅这样做就ok了,因为我
Ajax的异步请求, 可以帮助我们节省时间吗?

问题的来源是这样的, 我正在做页面载入性能的优化, 我把原来的4个同步执行的ajax请求改成了4个异步的.

但是不能仅仅这样做就ok了, 因为我要在这4个请求都结束之后, 做一次页面初始化.

解决方案是, 设计一个状态位count, 每次异步请求的回调函数完成后, 把count 累加1.

然后在最后一个完成的请求的回调函数中, 发现count==4, 那么就可以页面初始化.

 

改成异步之后, 我发现加载速度快了不少.

但是js不是单线程的吗? 即使是进行了事件排队, 那么最终结算的时间不应该还是相等的吗?

虽然js是单线程的, 但是浏览器不是单线程的.

ajax的请求都是委托给浏览器去做的, 浏览器会开启一个新线程完成request.

而ajax的异步, 就是不阻塞的意思.

如果ajax同步执行, 那么浏览器就没有机会完成多线程效果.

ajax异步的时候, 启动一个请求之后, 不会阻塞后面的请求的启动.

这样, 就可以在浏览器层面开启多个线程, 其实可以理解为浏览器的多线程帮助我们提高了效率.

 

而利用浏览器的多线程下载来提高页面性能的例子也是比比皆是, 比如script 标签的 defer属性.

又比如, web组件分离的目的等等...

 

posted on 2014-01-20 15:52 Jackiesteed 阅读(...) 评论(...) 编辑 收藏

转:https://www.cnblogs.com/jackiesteed/articles/3527067.html



推荐阅读
author-avatar
kenan0072010
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有