script加载顺序(async和defer的区别)

  • 时间:2020-04-24 13:31 作者:乘着风 来源: 阅读:414
  • 扫一扫,手机访问
摘要:默认方式浏览器会并行加载script, 但是执行是书写的顺序,假如script1执行未完毕,就不会开始执行script2,虽然script2已经加载完。而且这种方式会阻碍script标签后面其余元素的渲染,直到script1执行完毕才会渲染后面的dom script src='./script1.j

默认方式

浏览器会并行加载script, 但是执行是书写的顺序,假如script1执行未完毕,就不会开始执行script2,虽然script2已经加载完。
而且这种方式会阻碍script标签后面其余元素的渲染,直到script1执行完毕才会渲染后面的dom

<script src='./script1.js'></script><div>after scrpit1</div><script src='./script2.js'></script><div>after scrpit2</div>

async方式

这种方式不会阻碍script标签后面其余元素的渲染,谁加载快谁先执行

<script async src='./script1.js'></script><div>after scrpit1</div><script async src='./script2.js'></script><div>after scrpit2</div>
  • 测试用例:使用node服务,将script1请求的响应时间控制比script2长
  • 测试结果:
    1. script2开始执行 1576223742526
    2. script2执行完毕 1576223744794
    3. script1开始执行 1576223744795
    4. script1开始执行 1576223747009

defer方式

这种方式不会阻碍script标签后面其余元素的渲染,会按照书写书序执行.

<script defer src='./script1.js'></script><div>after scrpit1</div><script defer src='./script2.js'></script><div>after scrpit2</div>
  • 测试用例:使用node服务,将script1请求的响应时间控制比script2长
  • 测试结果:
    1. script1开始执行 1576224918596
    2. script1开始执行 1576224920828
    3. script2开始执行 1576224920829
    4. script2执行完毕 1576224923093
  • 全部评论(0)
最新发布的资讯信息
【系统环境|】Fortigate飞塔防火墙如何开启DNS转发/DNS代理(2025-10-14 23:58)
【系统环境|】有了它,再也不用担心电脑弹窗广告和病毒啦!(2025-10-14 23:57)
【系统环境|】如何关闭恼人的电脑弹窗广告?2招搞定(2025-10-14 23:55)
【系统环境|】实用软件推荐:电脑广告弹窗多?用他,都给你屏蔽掉!(2025-10-14 23:55)
【系统环境|】Nginx篇01——基本安装配置和静态页面设置(2025-10-14 23:54)
【系统环境|】Linux端口开放,查看,删除,防火墙(2025-10-14 23:53)
【系统环境|】安全HTTP头部配置: 基于CSP与HSTS的Web安全策略(2025-10-14 23:52)
【系统环境|】老K:做私域过1000万的赛道全部都聚焦在女性身上!(2025-10-14 23:51)
【系统环境|】JavaScript跨域问题: 如何解决跨域访问和资源共享的安全策略(2025-10-14 23:51)
【系统环境|】家庭七级财务防火墙(2025-10-14 23:50)
手机二维码手机访问领取大礼包
返回顶部