小帅の技术博客 小帅の技术博客
首页
  • 基础
  • 框架
  • 进阶
  • 工程化
  • NodeJS
  • 脚本
  • 拓展
  • 技术
  • 服务器
程序猿
关于
友链
  • 分类
  • 标签
  • 归档
GitHub

前端小帅

学而不思则罔,思而不学则殆
首页
  • 基础
  • 框架
  • 进阶
  • 工程化
  • NodeJS
  • 脚本
  • 拓展
  • 技术
  • 服务器
程序猿
关于
友链
  • 分类
  • 标签
  • 归档
GitHub
  • JavaScript

  • 面试

    • 内容梳理
    • 图片优化
    • 服务&网络
      • 浏览器缓存
      • 预加载
      • 预渲染
      • 懒加载
      • 懒执行
    • 浏览器
    • CSS盒模型、BFC、Grid布局
    • 原型、原型链、原型继承和类继承特点
    • this剖析apply、call、bind
    • JS模块化
    • CSS布局
    • 网络

性能优化-服务&网络

前端性能优化 前端性能优化常用总结

# 浏览器缓存

深入理解HTTP缓存机制及原理

  • 强制缓存:服务器通知浏览器一个缓存时间,在缓存时间内,下次请求,直接用缓存,不在时间内,执行比较缓存策略。

  • 对比缓存/协商缓存:将缓存信息中的Etag(资源的唯一标识符)和Last-Modified(最近修改时间)通过请求发送给服务器,由服务器校验,返回304状态码时,浏览器直接使用缓存。

# 预加载

  • 预加载其实是声明式的 fetch ,强制浏览器请求资源,并且不会阻塞 onload 事件。

  • 预加载可以一定程度上降低首屏的加载时间,因为可以将一些不影响首屏但重要的文件延后加载,唯一缺点就是兼容性不好。

  • 启用方式

    <link rel="preload" href="http://example.com">
    
    1

# 预渲染

  • 可以通过预渲染将下载的文件预先在后台渲染。

  • 预渲染虽然可以提高页面的加载速度,但是要确保该页面百分百会被用户在之后打开,否则就白白浪费资源去渲染。

  • 启用方式

    <link rel="prerender" href="http://example.com">
    
    1

# 懒加载

  • 将不关键的资源延后加载。
  • 懒加载不仅可以用于图片,也可以使用在别的资源上。比如进入可视区域才开始播放视频等。
  • 原理:
    • 懒加载的原理就是只加载自定义区域(通常是可视区域,但也可以是即将进入可视区域)内需要加载的东西。
    • 对于图片来说,先设置图片标签的 src 属性为一张占位图,将真实的图片资源放入一个自定义属性中,当进入自定义区域时,就将自定义属性替换为 src 属性,这样图片就会去下载资源,实现了图片懒加载。

# 懒执行

  • 将某些逻辑延迟到使用时再计算。
  • 懒执行需要唤醒,一般可以通过定时器或者事件的调用来唤醒。
编辑
#性能优化
上次更新: 2024/04/15, 14:35:14
图片优化
浏览器

← 图片优化 浏览器→

最近更新
01
说说call、apply、bind是如何改变this的
03-29
02
从输入 URL 到页面加载完成发生了什么?
03-29
03
JavaScript进阶—— new 的执行过程
03-26
更多文章>
sunss | © 2020.08-2024.04 浙ICP备2022002957号-1
载入天数... 载入时分秒...  |  总访问量 次
提供CDN加速/云存储服务
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式