美文网首页
浏览器加载的时间线

浏览器加载的时间线

作者: 没头脑很不高兴 | 来源:发表于2017-12-09 17:49 被阅读0次

一、创建 document 对象

开始解析Web页面。解析HTML元素和它们的文本内容后添加 element 对象和text节点到文档中,这个节点的 document.readyState = 'loading'

二、加载到link的外部CSS

创建一个线程加载这个资源,并且继续解析文档

三、加载到script的外部 JS(1)

如果script标签上没有设置async、defer等表示异步加载的属性,那么浏览器加载,并且阻塞页面、等待它加载完并且执行完这个脚本

四、加载到script的外部 JS(2)

遇到有async、defer等表示异步加载的属性,创建一个线程加载,不阻塞页面,对于有async 属性的JS,脚本加载完成后就立即执行(异步加载禁止使用document.write等方法)

五、遇到img标签

先根据它的宽高正常解析dom结构(给img在文档中占位),而后创建一个线程加载img的资源

六、文档解析完成后

此时dom的解析完成,wanchdocument.readyState = 'interactive',所有设置了defer 的脚本按照顺序执行

七、document 对象触发DOMContentLoaded 事件

标志着程序的运行由同步脚本驱动阶段转换成事件驱动阶段
浏览器开始监听输入事件、点击事件等由用户触发的事件了、

八、当所有资源被加载完成后

例如img等异步标签加载完成后、async脚本加载并执行完毕
document.readyState = complete
window上几个事件的加载顺序

  1. loading
  2. interactive
  3. DOMContentLoaded ,这个事件只能用addEventListener绑定
  4. load
    window 对象触发 load 事件

相关文章

  • 浏览器加载的时间线

    一、创建 document 对象 开始解析Web页面。解析HTML元素和它们的文本内容后添加 element 对象...

  • JS(浏览器)加载时间线

    个人笔记,仅供参考。 JS加载时间线,换句话讲可以理解为浏览器渲染页面时的时间流程。 生成document对象,开...

  • 白屏问题与FOUC

    在讨论“白屏与FOUC”之前,我们先理清浏览器的加载原则: 浏览器对于图片和CSS,在加载时会并发加载; 浏览器对...

  • 浏览器和node模块加载

    浏览器加载 传统方法 HTML 网页中,浏览器通过 标签加载 JavaScript 脚本。 默认情况下,浏览器是同...

  • 使用 preconnect 提前与服务端建立连接

    preload 使用preload加载最重要的资源,以高优先级加载资源 允许浏览器设定资源加载的优先级 赋予浏览器...

  • 解决图片加载不出来

    在火狐浏览器中网页是可以加载的,但是360浏览器和谷歌浏览器的图片是加载不出来的。 图片加载不出来,那肯定是路径问...

  • ES6标准入门 摘要 (Module的加载实现)

    浏览器加载 传统加载 默认情况下,浏览器是同步加载 JavaScript 脚本,即渲染引擎遇到 标签就会停下来,等...

  • es6模块加载-js-v1.0.0

    于浏览器01.浏览器通过 标签加载 JavaScript 脚本02.浏览器加载 ES6 模块,也使用 标签,但是要...

  • js加载时间线

    1、创建Document对象,开始解析web页面。解析HTML元素和他们的文本内容后添加Element对象和Tex...

  • JS加载时间线

    浏览器在解析文档的时候,会按照特定的规则一步一步进行解析。我将此过程用下面这张图记录下来,方便查阅

网友评论

      本文标题:浏览器加载的时间线

      本文链接:https://www.haomeiwen.com/subject/fqlpixtx.html