首页 > 其他分享 >JS CSS HTML 加载顺序

JS CSS HTML 加载顺序

时间:2022-10-29 19:56:07浏览次数:73  
标签:脚本 JS 阻塞 js HTML CSS 解析 css 加载

JS CSS HTML 加载顺序

 

解析: 运行代码
加载: 下载代码

  1. JS脚本 ( 因为js修改DOM, 所以需要先js解析 )
    script标签: 阻塞html文档的解析, 直到脚本执行完
    外引js: 先网络请求,加载js, 再阻塞html文档的解析, 直到脚本执行完

  2. CSS ( js有可能依赖样式,如var a=$('#id').width() 需要先css解析 )
    Firefox 所有css阻塞js脚本
    chrome 脚本访问css时, 阻塞这个js脚本

  3. 阻塞优先级: CSS > JS > HTML

  4. 预解析
    浏览器多线程异步优先解析script link 标签, 并加载这些资源. 就是优先加载外引js css

  5. chrome网页加载顺序:
    1 浏览器一边下载html, 一边开始从上往下顺序解析
    2 预解析, 下载js css
    3 遇到js脚本, script标签, 阻塞html解析, 由js引擎解析js代码
    4 js代码中访问了css, 阻塞这个脚本, 优先css
    5 以上head里的js css 解析完成, 解析body中html
    6 运行body最后的js脚本 script标签
    7 进行DOM渲染和Render树渲染

    • 获取html并解析为Dom树
    • 解析css并形成一个cssom(css树)
    • 将cssom和dom合并成渲染树(render树)
    • 进行布局(layout)
    • 进行绘制(painting)
    • 回流重绘
      • 回流必将引起重绘,重绘不一定引起回流
  6. js延迟加载

<script src=""  async></script>
<script src=""  defer></script>

两者都只适用于外部脚本.
区别: async不保证执行的先后顺序
记忆: async异步,不同时的(无顺序), defer延期(有顺序)
一般来说,如果脚本之间没有依赖关系,就使用async属性,如果脚本之间有依赖关系,就使用defer属性。

标签:脚本,JS,阻塞,js,HTML,CSS,解析,css,加载
From: https://www.cnblogs.com/sexintercourse/p/16839499.html

相关文章

  • html,css,js加载顺序
    <headlang="en"><metacharset="utf-8"><title></title><linkrel="stylesheet"href="css/*.css"><scriptsrc="js/*.js></script></head>DOM文......
  • 【JS】扩展内建类 - Symbol.species
    species是个函数值属性,其被构造函数用以创建派生对象,species访问器属性允许子类覆盖对象的默认构造函数。 JS内建类可以被扩展classMyArrayextendsArray{......
  • CSS权重的叠加
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width......
  • js 字符串中包含逗号和分号分析成数组
    varstr="117.39755436808615,34.59211450864094;117.39783481906638,34.59185738594207;117.39825396841732,34.59151467824745;117.39895365857903,34.5909999082......
  • js 数组-过滤数据
    js数组-过滤数据filter()方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。注意:filter()不会对空数组进行检测。注意:filter()不会改......
  • HTML DOM
    HTMLDOM是HTMLDocumentObjectModel(文档对象模型)的缩写,定义了访问和操作HTML文档的标准方法DOM以树结构表达HTML文档 HTMLDOM是:HTML的标准对象模型HTM......
  • 1_js中过滤器filter简单实现
    filterAPI自实现我感觉这个API我用起来不是很顺畅我自己写一个看看分析这是api参考手册设计思路抛开其他的不谈,filter本质上就是原型Array上的一个函数==ap......
  • 【Node.JS 练习】时钟案例
    目录​​案例要求​​​​实现​​​​步骤​​​​创建正则表达式​​​​使用相关模块,读取需要被处理的html文件​​​​自定义resolve方法​​​​css​​​​ js​​......
  • 【Node.JS 】http的概念及作用
    什么是http模块在网络节点中,负责消费资源的电脑,叫做客户端,负责对外提供网络资源的电脑,叫做服务器。http模块是Node.js官方提供的,用来创建web服务器的模块,通过http模块提供的......
  • 【Node.JS 练习】考试成绩整理
     目标整理前的数据格式  整理后的数据格式 实现思路导入需要的fs文件系统模块使用fs.readFile()方法,读取素材目录下的成绩.txt文件。判断文件是否读取失败。文件读取成功......