当前位置: 首页 > news >正文

Nextjs首屏加载速度性能从80分优化到98分

在这里插入图片描述

  • 使用Google控制台的Network面板检查首次加载资源请求的重复加载情况
    在Google Chrome开发者工具中,打开Network面板,刷新页面并记录首次加载的资源请求。通过查看请求列表,可以检查是否有重复加载的资源,例如相同的JavaScript文件、CSS文件或图片被多次请求。重复加载会浪费带宽并延长页面加载时间。可以通过以下步骤进行优化:

    1. 检查是否有重复的模块或库被引入,例如多个地方引用了相同的第三方库。
    2. 使用Webpack的SplitChunksPlugin将公共代码提取到单独的chunk中,避免重复加载。
    3. 确保静态资源(如图片、字体)的缓存策略正确配置,避免重复下载。
  • 使用Google控制台的Performance面板录制首屏加载过程,分析文件时长和阻塞情况
    在Performance面板中,点击“Record”按钮开始录制页面的首次加载过程。录制完成后,可以查看详细的加载时间线,包括JavaScript执行、CSS解析、网络请求等。重点关注以下内容:

    1. 主线程阻塞:检查是否有长时间运行的JavaScript任务阻塞了页面渲染,可以通过代码拆分或异步加载优化。
    2. 不必要的资源加载:识别首次加载时不需要立即展示的组件或资源(如弹窗、轮播图等),使用懒加载(Lazy Loading)或按需加载(Dynamic Import)技术延迟加载这些资源。
    3. 关键渲染路径优化:确保关键CSS和JavaScript优先加载,减少首屏渲染时间。
  • 使用@next/bundle-analyzer可视化检查页面和打包的资源大小,进行针对性优化
    在Next.js项目中,安装并配置@next/bundle-analyzer插件,生成打包资源的可视化报告。通过报告可以清晰地看到每个页面和组件的打包大小,识别出体积较大的模块或库。优化步骤如下:

    1. 移除未使用的代码:使用工具如Tree ShakingPurgeCSS删除未使用的JavaScript和CSS代码。
    2. 压缩资源:使用Webpack的TerserPluginCssMinimizerPlugin对JavaScript和CSS进行压缩。
    3. 按需加载第三方库:例如,使用lodash-es代替lodash,或者只引入需要的部分功能。
    4. 优化图片和字体:将图片转换为WebP格式,使用字体子集化减少字体文件大小。
    5. 代码拆分:将大型库或组件拆分为单独的chunk,按需加载以减少初始包大小。
// next.config.js
const withBundleAnalyzer 

相关文章:

  • Python OOP核心技巧:如何正确选择实例方法、类方法和静态方法
  • 【C++】15.并发支持库
  • QML 属性动画、行为动画与预定义动画
  • Flask框架搭建
  • AI编程赛道的思考:构建商业闭环Build your business,而非仅仅是应用not only build an app
  • 嵌入式学习笔记 - STM32 ADC 模块工作模式总结
  • 基于stm32f103c8t6的宠物仿声系统管理设计
  • 大模型,为什么需要分阶段学习?
  • 桌面端截长图/滚动截图:图像融合拼接关键算法
  • 【LeetCode 热题 100】动态规划 系列
  • 【Reality Capture 】02:Reality Capture1.5中文版软件设置与介绍
  • 【风控】用户特征画像体系
  • 序列dp常见思路总结
  • idea中Lombok失效的解决方案
  • 城市内涝监测预警系统守护城市安全
  • 【Linux 学习计划】-- 权限
  • 解决“VMware另一个程序已锁定文件的一部分,进程无法访问“
  • 革新直流计量!安科瑞DJSF1352-D电表:360A免分流直连,精度与空间双突破
  • foreach中使用await的问题
  • MATLAB中的概率分布生成:从理论到实践
  • 体坛联播|热刺追平单赛季输球纪录,世俱杯或创收20亿美元
  • 刘国中将出席第78届世界卫生大会并顺访瑞士、访问白俄罗斯
  • 刘强东坐镇京东一线:管理层培训1800人次,最注重用户体验
  • 今年有望投产里程已近3000公里,高铁冲刺谁在“狂飙”?
  • 经济日报:美国滥施汽车关税损人不利己
  • 福建厦门市副市长、市公安局局长陈育煌出任吉林省公安厅厅长