前端性能优化----如何减短首屏加载时间?

本文介绍了四种前端性能优化方法以减少首屏加载时间:动态使用Polyfill以减轻兼容性问题,利用骨架屏提高用户体验,通过代码分割优化资源加载,以及运用资源预加载技术。详细探讨了预加载的三种类型:preload、subresource和prerender,并提及了webpack的代码分割功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


为什么首屏加载会出现短暂几秒白屏呢?随着Vue、React等框架的出现,SPA单页面应用越来越广泛被开发者应用。但是呢,SPA应用页面打包之后的js文件是非常大的。要等这个js文件加载完成之后才能进行首屏渲染,这样就导致了白屏的问题。

一、使用动态Polyfill

Polyfill可以为浏览器提供和标签API一样的功能,无需引入插件,只需要引入一个js文件就行。可以使用动态使用Polyfill来代替我们现有的比较笨重的兼容问题,动态使用Polyfill使用过浏览器的UA头,然后根据不同浏览器选择其对应需要的Polyfill。

二、使用骨架屏

骨架屏就是指在未加载完时,先简单用图形绘制出页面的大概布局,给用户好一点的视觉体验,等页面加载完成之后,再将骨架屏替换掉就行。

  • 绘制静态骨架屏:最简单的方案就是直接绘制一张骨架屏的图片,在资源加载完成之后替换掉这张图片。我们可以采用base64格式的图片直接插入到HTML文档里,可节约一次http请求。
  • 代码绘制骨架屏:代码绘制灵活性比较高;
  • 插件绘制:如果需要给多个页面添加骨架屏,需要绘制多个骨架屏,比较麻烦。我们可以只用page-skeleton-webpack-plugin插件,该插件可以根据具体的页面生成对应的骨架屏。

三、代码分割

代码分割指的是将项目构建打包后,根据指定规则分割成多个输出文件,这些文件可以被按需加载,可以用来优化代码加载时的资源大小及优先级。正确的使用代码分割可以提升资源加载效率。

四、使用资源预加载

什么是资源预加载?

页面资源预加载是浏览器提供的一个技巧,目的是让浏览器在空闲时间下载或预读取一些文档资源,用户将来会访问这些资源。一个Web页面可以对浏览器设置一系列的预加载指示,当浏览器加载完当前页面后,它会在后台静悄悄加载指定的文档,并把他们存储在缓存里。当用户访问到这些预加载的文档后,浏览器能快速的从缓存里提取给用户。

简单的讲:就是当前页面加载完或者其他空闲时间,可以加载后续页面会使用的资源。

  • rel="preload"
    可以使用rel属性,元素的rel属性值preload能够让你在你的HTML页面中元素内部书写一些声明式的资源获取请求,可以指明那些资源是在页面加载完成后即刻需要的。
<link rel="preload" href="style.css" as="style">
<link rel="preload" href="main.js" as="script">

字体、图片、音视频都可以进行预加载。

  • rel="subresource"
    优先级高于preload。
<link rel="subresource" href="style.css">
  • rel="prerender"
    prerender可以指定加载一个页面的所有资源。
<link rel="prerender" href="/index.html">

prerender更像是我们默认打开了一个隐藏的Tab一样,会下载所有的资源,创建DOM、渲染页面、执行JS等。如果用户进入指定的链接,隐藏的这个页面会立马进入用户的视线。

webpack代码分割
学习于前端性能优化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值