HTML 页面加载过程

window.onload 和 DOMContentLoaded 的区别

这里写图片描述

  • DOMContentLoaded:DOM结构加载完毕
  • window.onload:DOM结构和静态资源加载完毕

从输入 url 到得到 html 的过程

  1. 输入资源地址(地址栏输入、页面跳转、页面加载)发起请求
  2. 浏览器缓存机制,优先查找本地有无缓存可用
    • 搜索自身的 DNS 缓存
    • 搜索操作系统自身的DNS 缓存
    • 读取本地的 HOST 文件
    • 发起一个 DNS 的系统调用
  3. 浏览器向 DNS 服务器发起 域名 解析 请求
    • 宽带运营服务商服务器查看本身缓存
    • 运营商服务器发起一个迭代DNS解析的请求
    • 运营商服务器把结果返回操作系统内核同时缓存起来
    • 操作系统内核把结果返回浏览器
    • 浏览器拿到 域名 对应的 IP 地址
  4. 建立与服务器的 TCP/IP 连接,三次握手 过程
  5. 向服务器发送 http / https 请求,创建端口
  6. 服务器在端口监听客户端请求
    • 接收请求,根据路径参数,经过后端处理后
    • 返回状态和内容
  7. 浏览器得到返回内容
    • 拿到HTML页面代码,开始解析页面
    • 碰到的 js、css、图片等静态资源,发起请求
    • 从发起请求到返回结果,同样经过上面的步骤
    • 根据拿到的资源对页面进行渲染,最终把一个完整的页面呈现给用户

浏览器渲染页面的过程

  • 根据 HTML 结构生成 DOM Tree
  • 根据 CSS 生成 CSSOM
  • DOMCSSOM 整合形成 RenderTree
  • 根据 RenderTree 开始渲染和展示
  • 遇到 <script> 时,会执行并阻塞渲染,因为 Javascript 代码有权利改变DOM
HTML 页面加载时间是指从用户发送请求(例如点击链接或输入 URL)直到页面完全加载完成的时间。在这个过程中,浏览器需要下载所有 HTML、CSS、JavaScript 和图像等资源,并对它们进行解析和渲染。因此,页面加载时间受到多种因素的影响,包括以下几个方面: 1. 网络速度:网络速度越慢,页面加载时间就越长。 2. 服务器响应时间:服务器响应时间越长,页面加载时间也会随之延长。 3. 页面大小:页面大小包括 HTML、CSS、JavaScript 和图像等资源的大小。页面越大,加载时间也会越长。 4. 浏览器缓存:如果用户已经访问过该页面并将其缓存在本地,那么页面加载时间会显著缩短。 5. 服务器缓存:如果服务器已经将该页面缓存在内存或磁盘上,那么页面加载时间也会明显减少。 为了提高页面加载时间,可以采取以下措施: 1. 压缩页面资源:通过压缩 HTML、CSS 和 JavaScript 等资源,可以减小页面大小,从而加快页面加载速度。 2. 使用浏览器缓存:通过设置缓存策略,可以让浏览器缓存页面资源,从而加快页面加载速度。 3. 优化服务器响应时间:通过优化服务器配置和代码,可以缩短服务器响应时间,从而减少页面加载时间。 4. 使用 CDN:通过使用 CDN(内容分发网络),可以将页面资源缓存在全球各地的服务器上,从而加快页面加载速度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值