【js基础】之页面加载、性能优化

本文详细介绍了网页加载过程,包括从DNS解析到页面完全呈现的所有步骤,并对比了window.onload与DOMContentLoaded事件的区别。此外,还提供了多种性能优化策略,如资源压缩合并、懒加载等。

1.页面加载

  1. 加载一个资源的过程

    • 浏览器根据 DNS 服务器得到域名的IP地址
    • 向这个 IP 的机器发送 http 请求
    • 服务器收到、处理并返回 http 请求
    • 浏览器得到返回的内容
  2. 浏览器渲染页面的过程

    • 根据 HTML 结构生成 DOM Tree
    • 根据 CSS 生成 CSSOM
    • 将 DOM 和 CSSOM 整合成 RenderTree
    • 根据 RenderTree 开始渲染和展示
    • 遇到 <script> 时,会执行并阻塞渲染
  3. window.onload 和 DOMContentLoaded 的区别
window.addEventListener('load',function(){
    // 页面的全部资源加载完才会执行,包括图片、视频等。
})
document.addEventListener('DOMContentLoaded',function{
    // DOM 渲染完即可执行,此时图片、视频可能还没有加载完。
})

2.性能优化

  1. 加载资源优化

    • 静态资源的压缩合并
    • 静态资源缓存
    • 使用 CDN 让资源加载更快
    • 使用 SSR(server side rendering) 后端渲染,数据直接输出到 HTML 中
  2. 渲染优化

    • CSS 放在前面,JS 放后面
    • 懒加载(图片懒加载、下拉加载更多)
    • 减少 DOM 查询,对 DOM 查询作缓存
    • 减少 DOM 操作,多个操作尽量合并在一起执行(document.createDocumentFragment())
    • 事件节流(keyup时调用查询,只查询最后一次)
    • 尽早执行操作(如DOMContentLoaded)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值