Skip to content
Have a brief look

性能优化

SPA 单页面应用的理解

SPA 概述

SPA (Single Page Application) 是指在页面初始化的时候加载相应的 HTML、css、JS 文件,加载完后不会因为用户的操作而进行页面重载或跳转,内容变化利用路由机制实现。

优点:

  • 良好的交互体验。

用户在访问应用页面是不会频繁的去切换浏览页面,从而避免了页面的重新加载。

  • 前后端分离。

单页Web应用可以和 RESTful 规约一起使用,通过 REST API 提供接口数据,并使用 Ajax 异步获取,这样有助于分离客户端和服务器端工作。

更进一步,在客户端也可以分解为静态页面和页面交互两个部分。

  • 减轻服务器压力。

服务器只用出数据就可以,不用管展示逻辑和页面合成,吞吐能力会提高几倍。

  • 共用一套后端代码。

不用修改后端程序代码就可以同时用于 Web 界面、手机、平板等多种客户端。

缺点:

  • 首屏加载速度慢。

  • 不利于SEO优化。

  • 不能使用浏览器前进后退功能。

SPA 优化

1、首屏加载慢

原因:网络延迟、资源文件过大、重复加载、加载脚本时的阻塞渲染。

优化:

  • 使用路由懒加载,减少入口文件大小,按需加载。

  • UI 框架按需加载。例如 element-ui 只引入用到的组件,不要全部引入。

  • 设置骨架屏,提升用户视觉体验。

  • 静态资源本地缓存。

  • 防止组件重复下载。在 webpack 中配置 CommonsChunkPlugin,为 minChunks 设置具体的值,表示把使用 n 次及以上的包抽离出来,放入公共依赖文件,避免重复加载组件。

  • 图片资源压缩:雪碧图、使用在线字体图标等。

  • 开启 Gzip 压缩,compression-webpack-plugin 对资源文件进行压缩。

  • 使用 SSR,即在服务端渲染,再发送给浏览器。

  • 复用页面组件,在加载初始页面的时候会完全加载,然后逐渐替换更新新的页面片段。

2、前进后退优化

保存历史路由信息。在页面切换的时候,也可以使用骨架屏,防止空屏出现。

3、SEO 优化

页面的 # 替换成 #!,解决难被搜索引擎抓取到的问题。

浅谈前端SPA(单页面应用

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

前端首屏性能优化

前端首屏性能优化

If there is any reprint or CV, please mark the original address of this website