首屏加载优化总结

一、什么是首屏加载

  • 首屏时间(First Contentful Paint,FCP) :浏览器从输入网址到 首屏内容渲染完成 的时间。
  • 不需要整个网页都渲染完,但首屏区域必须显示内容。
  • 重要性:是衡量用户体验最关键的性能指标之一。

计算方式

  1. 监听 DOMContentLoaded

    javascript 复制代码
    document.addEventListener('DOMContentLoaded', () => {
        console.log('first contentful painting');
    });
  2. Performance API

    ini 复制代码
    performance.getEntriesByName("first-contentful-paint")[0].startTime;

二、加载慢的常见原因

  1. 网络延时(跨域/弱网环境)
  2. 资源体积过大(JS、CSS、图片)
  3. 资源重复请求(缓存缺失,依赖打包不合理)
  4. JS 脚本阻塞渲染(未使用 async/defer)

三、常见优化方案

1. 减小入口文件体积

  • 路由懒加载:拆分路由对应组件,按需加载

    css 复制代码
    routes:[ 
        {
          path: 'Blogs',
          component: () => import('./components/ShowBlogs.vue')
        }
    ]

2. 静态资源缓存

  • HTTP 缓存Cache-ControlEtagLast-Modified
  • Service Worker:离线缓存
  • localStorage:存储部分数据

3. UI 框架按需引入

  • 避免全量引入 UI 库,改为按需加载组件

    css 复制代码
    import { Button, Input, Pagination } from 'element-ui';
    Vue.use(Button).use(Input).use(Pagination);

4. 公共依赖抽取

  • 使用 webpack SplitChunksminChunks

    arduino 复制代码
    minChunks: 3 // 使用 3 次以上抽取为公共依赖

5. 图片优化

  • 图片压缩(tinypng、image-webpack-loader)
  • 使用字体图标/雪碧图
  • 优先考虑 WebP 格式

6. 开启 GZip 压缩

  • 前端构建时使用 compression-webpack-plugin

  • 服务端启用 gzip(express 示例):

    php 复制代码
    const compression = require('compression')
    app.use(compression())

7. 使用 SSR

  • SSR(服务端渲染) :服务器直接返回 HTML
  • Vue 推荐 Nuxt.js 实现 SSR,显著提升首屏速度

四、优化整体思路

  • 资源加载优化:拆分入口、缓存、压缩、依赖抽取、GZip
  • 页面渲染优化:SSR、懒加载、UI 框架按需加载、减少阻塞

五、参考资料


🤖 AI 生成提示:本文由 AI 模型自动生成并整理,仅供学习与参考。

相关推荐
蜗牛攻城狮5 分钟前
CSS中的 `dvh` 与 `vh`: 深入理解视口单位
前端·css
啥都不懂的小小白11 分钟前
Shell脚本编程入门:从零基础到实战掌握
前端·shell
东东51628 分钟前
校园短期闲置资源置换平台 ssm+vue
java·前端·javascript·vue.js·毕业设计·毕设
qq_4198540529 分钟前
富文本编辑器
前端
悟能不能悟29 分钟前
VUE的国际化,怎么实现
前端·javascript·vue.js
Mr Xu_34 分钟前
解决 Vue + Axios 热更新导致响应拦截器重复注册的问题
前端·javascript·vue.js
岁岁种桃花儿1 小时前
NodeJs从入门到上天:什么是Node.js
前端·node.js
colicode1 小时前
语音报警接口开发参考:紧急情况下快速调用语音API发送安全警报
前端·语音识别
夏河始溢1 小时前
一八四、Zustand 状态管理详解、与 Redux、MobX 的对比分析
前端·javascript·react.js·状态管理·zustand
Code小翊1 小时前
TypeScript 核心语法速查
前端·javascript·typescript