前端项目首屏加载优化--页面初始进来加载速度慢的解决方案

【前端面试】首屏优化 多一些不为什么的坚持🤳这里是大眼(◉ɷ◉)萌–贤蛋🥚,一名很普通但不想普通的程序媛🙊。 阅读详情

首屏加载优化–页面初始进来加载速度慢的解决方案

1、 Nginx开启gzip静态资源压缩

编辑nginx配置文件 nginx.conf 找到如下代码并更改如下:

gzip on; # 开启压缩
gzip_min_length 1k; # 设置压缩最小单位,小于不压缩
#gzip_disable "msie6";
# gzip_vary on;
# gzip_proxied any;
gzip_comp_level 4; # 压缩比
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; # 压缩内容

2、Webpack配置代码分割

webpack给出了智能分割代码的功能:splitChunks,可以用给定的策略去抽取公共代码,避免重复。详细的可以看webpack的官方文档(https://webpack.docschina.org/guides/code-splitting/#splitchunksplugin),提供了详细的配置!

/**
 * 分割打包代码,防止重复打包以及打包大小过大
 */
module.exports = function (config) {
  config.merge({
    optimization: {
      minimize: true,
      splitChunks: {
        chunks: 'all',
        minSize: 10,
        minChunks: 1,
        automaticNameDelimiter: '.',
        cacheGroups: {
          vendors: {
            name: 'chunk-vendors',
            chunks: 'all',
            test: /[\\/]node_modules[\\/](@ant-design|moment)[\\/]/,
            priority: 13
          },
          'brace-index': {
            name: 'brace-index',
            chunks: 'all',
            test: /[\\/]node_modules[\\/](brace)[\\/]index.js/,
            priority: 12
          },
          'axios': {
            name: 'axios',
            chunks: 'all',
            test: /[\\/]node_modules[\\/](axios)[\\/]/,
            priority: 12
          },
          'ant-design-vue': {
            name: 'ant-design-vue',
            chunks: 'all',
            test: /[\\/]node_modules[\\/](ant-design-vue)[\\/]/,
            priority: 12
          },
          common: {
            minChunks: 2,
            priority: 10,
            chunks: 'all',
            reuseExistingChunk: true
          }
        }
      }
    }
  })
}

3、 按需加载

  1. 按需引入所需第三方依赖,而不是全量注册,全量注册会导致打包的时候,将多余的代码一起打包到项目中,造成文件过大!
  2. 异步路由(路由懒加载),通过异步组件加载方式,按需加载当前路由所需的文件!
  3. 去除没用的依赖;避免类似作用的多种依赖包使用,例如使用了Element UI又使用Antd、同时使用了less和scss,类似的第三方依赖起到的作用是一样的,引入进来可能你觉得很方便,但是如果都使用了,到最后开发越来越多,不仅仅打包体积大和慢,跑起来开发更加慢,严重影响开发效率!

4、尽量功能开发减少代码量

  1. 公共方法封装: 类似的处理逻辑等代码应该封装成公共方法调用,重复使用。
  2. 抽离公共的组件。

5、 前端的资源动态加载

a. 路由动态加载,最常用的做法,以页面为单位,进行动态加载。
b. 组件动态加载(offScreen Component),对于不在当前视窗的组件,先不加载。
c. 图片懒加载(offScreen Image),同上。值得庆幸的是,越来越多的浏览器支持原生的懒加载,通过给img标签加上loading="lazy来开启懒加载模式。

6、Webpack引入CDN资源

配置webpack的externals,如下:
在这里插入图片描述
使用CDN资源的好处:减少打包的体积,配置的资源加载更快!

提高浏览器首屏加载速度的10个思路,你用过几个 优化了网页的首屏加载速度,说明网站性能好,同时也会提升用户体验。 阅读详情

相关推荐

SPA首屏加载优化全攻略:从代码分割到SSR的完整性能提升方案

在现代Web开发中,单页应用(SPA)因其流畅的用户体验而广泛应用,但其首屏加载性能问题一直是开发者的核心挑战。其原理在于SPA需要一次性加载所有JavaScript资源,导致初始白屏时间过长。优化首屏性能的技术价值不仅在于提升用户体验,更直接影响SEO排名和业务转化率。通过代码分割、懒加载等关键技术,可以将初始包体积最小化,实现按需加载。在应用场景上,无论是电商平台、内容门户还是后台管理系统,都需要针对资源体积、加载顺序和渲染策略进行系统优化。本文聚焦于SPA首屏加载慢这一普遍性能瓶颈,提供从基础压缩到服

weixin_34025151的博客 401

前端优化-首屏加载优化

TinyPNG 是一款线上图片压缩工具,采用智慧型无损压缩技术来降低 PNG 图片大小,而这个方法可以透过降低图片中的色彩数量,来减少存储图片所需的空间,这样做法能够大幅度降低图片的大小,但又不会造成图片过度损坏,像素降低等等,至少从肉眼上看不出差别,且能够保存 PNG 的 alpha 透明度特性。app.js中的页面拆分成单独的js文件,按需加载,加速app.js文件的下载速度从而减少首页加载时间。无需上传服务器,本地压缩,无大小,数量限制,支持JPG、PNG压缩,PNG支持良好,可自定义压缩参数。

发渐稀的博客 3809

前端优化:首屏加载速度的实践

随着互联网技术的飞速发展,前端网页逐渐取代了传统客户端成为用户获取信息、进行交互的重要渠道,但是网页也有常见的弊端,比如网页首屏加载速度的快慢直接影响着用户体验,那么如何提升网页的首屏加载速度,成为了前端开发者必须面对的问题。本文将从多图片懒加载、避免用户多次点击请求以及骨架屏原理等方面,简单分享一下前端优化首屏加载速度的策略优化。欢迎大家在评论区留言交流。

全沾软贱开发攻城狮 1万+

首屏加载优化方案

首屏加载优化方案 1、vue-router 路由懒加载 const Test = () => import("@/components/Test.vue"); 2、使用CDN加速,将通用库从vendor进行抽离 cdn:构建在现有的网络基础上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。 vue项目build之后,vendors有1M多,会导致首屏加载慢的问题 vendo

不想挨打的汤姆猫 9809

通过content-visibility实现快速首屏渲染优化

想象一下,你在淘宝上搜一件心仪的连衣裙,结果页面半天刷不出来,图片慢吞吞地加载,你还会耐心等下去吗?话说,各位有没有遇到过这种抓狂的情况:辛辛苦苦写好的网页,功能炫酷,设计精美,结果打开速度慢得像蜗牛爬,用户直接“啪”的一下关掉走人了。,就可以“偷个懒”,先渲染那些重要的、用户立马能看到的内容,其他不重要的就先放一放。浏览器不会渲染这个元素的内容,但会保留它的占位,所以页面布局不会发生变化。就像一个开关,可以告诉浏览器:嘿,伙计,这个区域的内容暂时不需要渲染,你可以先跳过,等我需要的时候再告诉你。

weixin_41455464的博客 183

TruckSim与Simulink联合仿真中的车轮转角精确控制策略

本文深入探讨了TruckSim与Simulink联合仿真中实现车轮转角精确控制的关键策略。针对多轴车辆路径跟踪时转角指令失灵的常见问题,核心在于正确配置TruckSim转向轴的外部输入模式(Advanced Settings),并确保仿真接口的稳定搭建。文章详细解析了从单轴到多轴协同转向的配置方法,并提供了提升MPC路径跟踪精度的实战技巧与调试经验。

weixin_29035147的博客 368

前端首屏加载优化

这表示要求75%的用户能够在这个时间内看到页面的主要内容。如果。

m0_74825260的博客 1518

python爬虫抖音 个人资料 仅供学习参考 切勿用于商业

本文仅供学习参考 切勿用于商业 本次爬取使用fiddler+模拟器(下载抖音APP)+pycharm 1. 下载最新版本的fiddler(自行百度下载),以及相关配置 1.1.依次点击,菜单栏-Tools-Options-HTTPS,如图1红框打钩,HTTPS旁边Connections配置,如图2红框打钩 1.2.再次点击HTTPS栏,点击Actions选择第二个…to ...

dbva7063的博客 1491

【前端性能优化指南】首屏加载优化、内存泄漏、CSS页面性能优化、CSS Sprites等

将一个页面涉及到的所有图片都包含到一张大图中去,然后利用CSS的的组合进行背景定位。利用CSS Sprites能很好地减少网页的http请求,从而大大的提高页面的性能。内存泄露的解释:程序中己动态分配的堆内存由于某种原因未释放或无法释放。根据JS的垃圾回收机制,当内存中引用的次数为0的时候内存才会被回收全局执行上下文中的对象被标记为不再使用才会被释放。

xuxuii的博客 2144

FPGA优质开源项目 – UDP万兆光纤以太网通信

本文开源一个FPGA项目:UDP万兆光通信。文章末尾有该工程源码获取方式,有需要的小伙伴可以点赞、分享支持一下~

cjx_csdn的博客 4768

ST-LINK调试原理与STM32硬件连接实战指南

嵌入式调试器是连接开发环境与物理MCU的核心枢纽,其本质是基于ARM CoreSight架构的实时硬件观测与控制接口。它通过JTAG或SWD协议访问内核寄存器、内存及外设,实现断点、单步、内存监视等深度调试能力,远超简单程序烧录功能。ST-LINK作为主流ARM Cortex-M调试器,支持SWD(2线)与JTAG(多线)双模式,在电平匹配、复位控制、引脚复用规避等硬件层面临关键工程约束。掌握VREF参考电压配置、nSRST硬复位接线、调试引脚隔离策略及Keil MDK调试会话配置,是保障STM32稳定联机

weixin_42596214的博客 312

SPA首屏加载优化方案详解

本文系统介绍了SPA(单页面应用)首屏加载优化方案。首先解析了首屏加载的定义和重要性,指出其在用户体验中的关键作用。随后分析了导致加载缓慢的7大原因,包括网络请求过多、资源体积过大等。针对这些问题,文章提出了9种具体优化方案:路由懒加载、静态资源缓存、UI框架按需加载、组件去重打包、图片压缩、GZip压缩、SSR服务端渲染、CDN加速和资源预加载。最后总结出资源加载优化和页面渲染优化两大方向,并给出包含网络优化、资源优化等维度的综合检查清单。通过实施这些策略,可显著提升SPA首屏性能,改善用户体验。

油墨香^-^的博客 1798

空频、空时、空域、时域、频域抗干扰介绍

1、时域抗干扰:对时间域序列进行滤波,滤波系数h(n),采样序列不断进行输入与滤波系数卷积计算,得到响应输出;例如常用的FIR和IIR滤波器。 对于多窄带干扰噪声源和连续波干扰源有较好的处理效果,还可以解决多径问题; 可以通过在接收机前端处理中增加一个嵌入式块实现; 2、频域抗干扰:接收机不容易受到相对于接收机频带以外的强功率干扰; 通常为带通滤波和阻带滤波, 适用于窄带干扰噪声源,连续波干扰源以及较强的频带外干扰噪声源, 3、空域抗干扰:通过多个自适应天线按照特定组合成天线阵列,波束成形,针对

qq_43517907的博客 7307

SPA(单页应用)首屏加载速度慢怎么解决?

首屏时间(First Contentful Paint,简称FCP),指的是浏览器从响应用户输入网址地址,到首屏内容渲染完成的时间。此时整个网页不一定要全部渲染完成,但需要展示当前视窗(viewport)需要的内容。首屏加载可以说是用户体验中最重要的环节,据Google研究显示,当页面加载时间从1秒增加到3秒时,跳出率会提高32%。资源加载优化合理分片:路由/组件级代码分割智能缓存:HTTP缓存+Service Worker体积压缩:GZip+Brotli+资源优化页面渲染优化关键CSS内联。

qq_50664041的博客 986

022、Conv-BN-SiLU 基础卷积块:构造函数参数计算,前向传播的 PyTorch 逐行实现

本文详细解析了Conv-BN-SiLU卷积块的实现细节与注意事项。作者从调试经历出发,指出bias参数冗余会导致数值不稳定,强调卷积层应设置bias=False。文章对比了SiLU与ReLU的特性差异,逐行分析了构造函数参数计算(包括自动填充、分组卷积等)和前向传播过程,特别讲解了BN层与SiLU激活的数值特性。最后分享了三个实践中的常见问题:BN的momentum设置、SiLU输出范围的影响,以及分组卷积的通道对齐要求,并提供了卷积与BN融合的推理优化技巧。全文聚焦实际工程实现中的关键细节,具有较强实操指

ai技术增长的博客 218

一步一步详解LSTM网络【从RNN到LSTM到GRU等,直至attention】

本文主要译至并加上了部分笔者的见解,对于全面理解LSTM有一定的帮助。

zik的博客 3078

SPA(单页应用)首屏加载速度慢怎么解决?

立即生效:启用代码分割 + Gzip/Brotli 压缩 + CDN。中期优化:分析依赖体积,替换重型库,添加骨架屏。长期方案:评估 SSR/SSG 改造,建立性能监控体系。

2401_84787713的博客 757

恶劣天气下的分割鲁棒性:雨雪雾干扰消除

恶劣天气下的分割鲁棒性:雨雪雾干扰消除​ ,人工智能,计算机视觉,大模型,AI,本文围绕恶劣天气下语义分割鲁棒性及雨雪雾干扰消除展开,分析了雨雪雾对图像和分割任务的影响,介绍了基于图像增强、深度学习等现有解决方法,以及针对不同干扰的具体方案,还探讨了提高分割鲁棒性的策略、实验评估情况,指出当前面临复杂天气、数据缺乏、实时性等挑战,并展望了端到端模型、无监督学习等未来发展趋势,为该领域研究提供了全面参考。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 17万+

VUE面试题(单页应用及其首屏加载速度慢的问题)

首屏加载时间(First Contentful Paint),就是指的是当用户输入完网址地址,到首屏内容渲染完成的时间。SPA 单页面应用也就是(Single-Page Application),他是指只有一个主页面的应用,一开始只需要加载一次 js、css 等相关资源。所有内容都包含在主页面,对每一个功能模块组件化。单页应用跳转,就是切换相关组件,仅仅刷新局部资源,这个就是单页面应用的概念。

思考是大脑的源代码,未经编译,却已运行一生。——调试自己,迭代世界。 1726

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

SPA首屏加载速度慢的解决方法

懒加载图片:使用 Intersection Observer API 懒加载图片。静态站点生成:使用工具如 Gatsby 或 Next.js 生成静态站点。Tree Shaking:移除未使用的代码,减少打包后的文件大小。通过代码分割和懒加载,可以将应用的代码拆分成多个小块,按需加载。使用现代格式:使用 WebP 格式替代 JPEG 和 PNG。选择轻量库:例如,使用 Preact 替代 React。减少第三方库的使用,或选择更轻量的替代品。减少资源的大小和数量,提高加载速度。

前端小白的博客 565

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

六招搞定,SPA单页面加载速度慢的问题。

众所周知,SPA页面有很多优点,但是首屏加载慢的问题一直被诟病,本文介绍几种解决策略,希望对老铁们有所帮助。

贝格前端工场的博客 594

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

电商项目实战:用Webpack优化首屏加载速度

上完成特别方便,它的在线编辑器可以直接运行Webpack项目,还能一键部署查看实际效果。最让我惊喜的是内置的终端可以实时查看构建输出,省去了本地配置环境的麻烦。如果也想快速尝试Webpack优化,推荐去InsCode上创建项目练手,他们的模板库里有现成的优化配置可以参考。- 将react、react-dom等基础库单独打包。- 设置合理的Cache-Control头。- 首次有效绘制:3.5s → 1.2s。- 首屏加载时间:4.2s → 1.8s。- 可交互时间:4.8s → 2.1s。

SilverfoxOwl19的博客 313

vue首屏加载速度慢_vue单页应用首次加载太慢之性能优化

问题描述:最近开发了一个单页应用,上线后发现页面初始加载要20s才能完成,这就很影响用户体验了,于是分析原因,发现页面加载时有个vendor.js达到了3000多kb,于是在网上查找了一下原因,是因为我打包的时候把所有第三方依赖都打包放进去了;要怎么分离出去呢,看下面步骤:一、解决打包后vendor.js 很大,导致上线后页面首次加载速度异常慢:vue-clinpm run build命令默认把...

weixin_39607937的博客 338

前端项目性能优化(详细)

前端项目的详细性能优化

renqq001的博客 845
上一篇: vue自定义指令-对输入框数字的限制,输入框的数字前面不能输入多余的0,例如00123, 00.12类型的数字
下一篇: vue基础知识总结及测试遇到的前端bug分析
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值