记一次前端性能优化

threeJS大文件加载优化(JSzip压缩传输) 需求: threeJS加载在线的obj/stl模型,模型可达200-300兆,模型加载时因文件较大网络传输慢,需进行优化处理 解决方案: 模型压缩后 阅读详情

记一次前端性能优化

公司新做的一个项目,写完代码第一次上测试环境测试,首屏加载要6秒左右的样子,于是进行了一系列的优化,成功将首屏时间降到了200ms左右;今天写篇文章,分享一下这次优化心得。
项目背景
vue-cli 2.x框架

一、代码技巧
二、压缩
三、cdn

一、代码技巧
去掉多余代码
减少请求数量
复用组件
二、压缩代码

打开webpack ``gzip``压缩

使用这个网站[https://tinypng.com](https://tinypng.com/)压缩图片

配置nginx开启``gzip``(自行百度)

使用``npm run build --report``分析打包后代码块大小,如果有重复得依赖可以在``webpack.base.conf.js``中配置如下属性:
  resolve: {
    extensions: ['.js', '.vue', '.json'],
    alias: {
      'vue$': 'vue/dist/vue.esm.js',
      '@': resolve('src'),
      'bn.js': path.resolve(process.cwd(), 'node_modules', 'bn.js')//我这里打包后重复引用了“bn.js”
    }
  },

三、cdn

在vue项目得唯一html文件中引入cdn加速过的文件

<script src="https://cdn.jsdelivr.net/npm/google-protobuf@4.0.0-rc.2/google-protobuf.min.js"></script>//jsdelivr 一个国外在中国搭建得开源免费得cdn平台,还可以把大图片上传到github仓库进行加速,这个很简单自行百度。
<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.5.2/vue.min.js"></script>//bootcdn bootstrap搭建得一个国内cdn,也可以用,但是插件没有jsdelivr得全
//注意引入的先后顺序,比如vue-router,vuex,element-ui都依赖vue,所以vue必须放在前面。
<script src="https://cdn.bootcdn.net/ajax/libs/axios/0.20.0/axios.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/vue-router/3.0.1/vue-router.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/vuex/3.5.1/vuex.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/element-ui/2.13.2/index.js"></script>
<script src="https://cdn.jsdelivr.net/npm/cos-js-sdk-v5@0.5.27/dist/cos-js-sdk-v5.min.js"></script>
<script defer src="https://cdn.bootcdn.net/ajax/libs/d3/3.5.17/d3.min.js"></script>
<script defer src="https://cdn.bootcdn.net/ajax/libs/jszip/3.5.0/jszip.min.js"></script>
<script defer src="https://cdn.bootcdn.net/ajax/libs/js-cookie/2.2.1/js.cookie.min.js"></script>
<script defer src="https://cdn.bootcdn.net/ajax/libs/mathjs/7.5.1/math.min.js"></script>

webpack通过webpack.base.conf.js的externals属性进行扩展,可以让你像安装包一样使用import引入,这个属性具体用法webpack官方文档写的很详细,代码如下:

	 externals: {
    'vue': 'Vue',
    'element-ui': 'ELEMENT',//这个ELEMENT怎么来需要你自己查看下这个插件的源码,其他也都是这样。
    'vue-router': 'VueRouter',
    vuex: 'Vuex',
    'd3': 'd3',
    'jszip': 'JSZip',
    axios: 'axios',
    cookie: 'js-cookie',
    math: 'mathjs',
    'cos-js-sdk-v5': 'COS'
  },

以上一系列操作后页面速度是1.6s。
但是用cdn引入是有个很大问题哈,就是别人的网站挂了你自己的网站也要凉,所以自己要做好后手哈。

记一次rax应用用户体验性能优化 对于前端开发攻城狮们来说,性能优化是一个永恒的话题。随着前端需求复杂度的不断升高,在项目中想始终保持着良好的性能也逐渐成为了一个有挑战的事情。本次分享简述我们在 Rax 项目中常用的一些性能优化方式,并将从近期的一个实际业务需求出发,讲述我在 Rax C端应用场景下所遇到性能问题排查时的心路历程。本次分享的优化内容,主要是指用户滑动屏幕浏览页面过程中所花费的单帧渲染耗时的降低比例。单帧渲染耗时通过 chrome dev tools 插件以及手淘端app dev tools测得。 阅读详情

相关推荐

JSZip使用Javascript创建读取和编辑zip文件

JSZip 使用Javascript创建,读取和编辑.zip文件

【免费下载】 探索JSZip:一款强大的JavaScript压缩与解压库

在前端开发中,处理文件和数据包的压缩与解压是一项常见的任务。而正是这样一个工具,它是一个纯JavaScript实现的ZIP文件处理库,能够无缝地集成到你的Web应用中。 ## 项目简介 JSZip是一款轻量级且功能丰富的库,允许你在浏览器或者Node.js环境中创建、读取和修改ZIP文件。通过其API,开发者可以方便地添加、删除、读取文件,甚至直接从URL或Base64编码的数据创建ZIP文件...

gitblog_00026的博客 2677

Kojak, 简单的JavaScript性能分析器.zip

Kojak, 简单的JavaScript性能分析器 ##Kojak: 一个简单的JavaScript性能分析器 ####What 是 KojakKojak是一个简单的实用工具,可以以帮助你找出哪些JavaScript函数运行得太慢。 它跟踪调用函数的时间。调用的频率。调用的时间以及函

xlsx-style使用中常见问题及解决办法

问题3:Can't resolve 'crypto'in D: code-a\LPA2 admin node modules (xlsx-style)问题1. Can‘t resolve ‘./cptable‘ in ‘xxx\node_modules_xlsx。在vue.config.js中引入以下代码。在vue.config.js中引入以下代码。在vue.config.js中引入以下代码。在vue.config.js中引入以下代码。通过命令安装Webpack 插件。

weixin_47586598的博客 2019

在vue.js中使用JSZip实现在前端解压文件的方法

今天小编就为大家分享一篇在vue.js中使用JSZip实现在前端解压文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

2018南京大学计算机夏令营机试

1. Count number of binary strings without consecutive 1’s Given a positive integer n(3≤n≤90), count all possible distinct binary strings of length n such that there are no consecutive 1's . Examples...

climber16的博客 1万+

django-request 是什么?Django 网站请求统计模块完全指南

**django-request** 是一款开源的 Django 请求统计模块,它会把网站收到的每一次 HTTP 请求自动存入数据库,供管理员在后台查看和分析。无论你想了解网站流量趋势、谁正在线上、用户来自哪个搜索引擎,还是想排查 404 错误页面,django-request 都能帮你轻松搞定,是 Django 网站统计与访问日志分析的一站式解决方案。 [![django-request 请求

gitblog_00154的博客 730

Unity游戏开发客户端Lua基础

Unity游戏开发客户端面经之 lua 篇

Sea3752的博客 1万+

好用的 js 压缩工具 压缩软件 压缩程序 精简压缩 JsZIP(JavaScript压缩工具)

好用的 js 压缩工具 压缩软件 压缩程序 精简压缩 JsZIP(JavaScript压缩工具)

潇湘博客 3135

国产AI芯片实战:用寒武纪MLU370低成本部署DeepSeek-R1,实测推理效果与成本分析

本文详细介绍了寒武纪MLU370芯片在部署DeepSeek-R1大模型时的实战效果与成本优势。通过实测数据对比,MLU370在推理速度、能效比和本地化服务方面表现突出,尤其适合智能客服、内容生成等场景,可显著降低硬件投入和运维成本。

weixin_30613727的博客 457

YOLOv11 结合多尺度卷积注意力机制(MSCA):小目标检测精度提升20%的完整实现指南

用不同尺寸的深度卷积(如d×7×1、d×1×7等)提取多尺度特征;通过通道融合,强化小目标的细节信息;仅增加4.2M参数,却能让小目标检测精度大幅提升(对比表见后文)。

m0_71589036的博客 186

记一次前端性能优化的案例

前两天遇到一个前端性能相关的bug,感觉还挺典型的,整理了一下解决过程和思路,写下来分享给大家。 场景是这样的,有一个答题的界面,可以播放音频、填空、提交答案,界面是长这个样子的: 看起来还挺简单吧,但是我们在手机上跑的时候,却遇到了以下问题: 1. 填完空后,提交按钮会由灰色变为蓝色(可提交状态),但是播放完音频后,却无法变蓝 2. 页面较长时,一边播音频一边滚动页面,会出...

aigenglong0649的博客 187

某招标公告网和vcaptcha验证码识别逆向

本文分析了某验证码系统的加密流程及破解思路。首先通过反混淆技术定位到加密函数,拆解了包含指纹函数、环境参数等组成的加密字符串。研究发现验证码生成涉及canvas指纹、环境检测等反爬机制,可通过模拟浏览器环境绕过。验证过程需要解密图片顺序,通过work2.js计算还原图片位置,再结合滑动轨迹、时间等参数生成验证请求。文章仅提供技术研究思路,强调需遵守法律法规,严禁非法破解信息系统。完整流程包括环境模拟、加密参数还原、图片处理和轨迹生成等步骤,成功率较高。

码王吴彦祖的博客 579

记一次前端性能优化——性能得分从56到96

点击上方前端Q,关注公众号回复加群,加入前端Q技术交流群前言最近看了一篇前端性能优化的文章,之前也没搞过性能优化,就学习了一下。要想搞性能优化,得知道都有哪些和性能相关的指标,得知道有什么工具可以量化地评估网站的性能表现,还得知道怎么进行优化、优化的思路都有啥。学了一波,决定用Lighthouse这款性能测试工具来评估一下自己开发的网站的性能,优化前得分56,优化后得分96,怎么做的呢?阅读本文...

LuckyWinty的博客 281

海思芯片YOLOv8模型部署完整指南:从RPN硬化到8bit量化精度优化

本文详细介绍了在海思芯片平台部署YOLOv8目标检测模型的完整方案,重点解决8bit量化精度损失问题。通过分析海思RPN硬化层的性能优势(1.9ms推理时间),对比不同量化策略(16bit仅损失0.6AP,8bit损失5.2AP),并深入定位到strides计算层是量化误差的主要来源。关键突破在于采用混合精度策略(敏感层16bit,其余8bit),使8bit量化AP回升4.1%,同时保持3.4ms的推理速度和60%的低NPU占用率。文章还提供了量化参数调整、校准数据集优化等进阶技巧,为边缘计算应用提供了性能

FJN110的博客 734

【ESP32使用MAX98357播放音频】

在物联网和智能家居领域,音频播放功能越来越受到重视。ESP32作为一款功能强大的微控制器,结合MAX98357音频放大器模块,可以实现高品质的音频播放。本文将详细介绍如何使用ESP32的I2S接口通过MAX98357进行音频播放。

vor234的博客 7530

记一次前端《性能优化》,首屏优化

首先要知道,性能优化无非两点:更快的请求、更轻的体态 更快的请求 DNS缓存了解一下,内容不多,一搜就有 cdn,现在各种云的都能提供这个,看谁做的更好了(命中率,回源率),核心原理是负载均衡:你请求后给你找到一个最佳的服务器节点。其实大概知道就好了,实际上你都碰不到这些代码,都是七牛、腾讯阿里云都给你做好的了,你花钱部署上去,直接请求地址就好了。 浏览器缓存,两点:强缓存,协商缓存。简单说就是前者直接使用首次请求的内容。后者每次会问后端内容有变吗?再做决定。 资源合并、域名分片。前者代表就是雪碧图,小小

weixin_45629623的博客 372

Linux | Ubuntu18.04安装RTX 4060显卡驱动完整教程

本节详细介绍了如何在ubuntu18系统安装4060显卡的驱动。

九七的博客 5160

记一次前端性能优化——vue-cli4优化首屏加载

记一次前端性能优化——vue-cli4优化首屏加载 一、前言 vue.js是一款时下非常流行的前端框架,很多公司,例如阿里、腾讯、字节等都在积极应用vue作为前端开发框架。这就说明,熟练使用vue开发前端页面、熟悉vue实现原理以及会通过一些技巧进行用户体验优化便成为了你冲击大厂的资本。在学习过程中,我成功实现了性能优化的一部分——优化首屏加载,特此记录,以便以后复习与查阅、亦或是分享给更多需要的人。 二、影响加载速度的因素 其实不难发现,我们只需要在加载自己的线上项目的时候,打开控制台,进入Network

m0_46172278的博客 1429

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

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

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

记一次惊心动魄的前端性能优化之旅

欢迎一起交流 欢迎关注我的个人公众号,不定期更新自己的工作心得。 正文从这里开始 题记:可以把这篇文章看成一次事故记录,一次线上事故。此刻我能坐在这里写下这篇文章,要感谢我司没有开除我,或者说我解决了这次性能问题,所以我有机会写下这篇文章。 起因 我司全球购业务改版,将原生的全球购页面采用Hybird模式开发,这是我司H5页面第一次出现在...

weixin_34321977的博客 175

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

记一次新浪前端面试(一)

目录 记一次新浪前端面试(一) 题目一: 考察到的知识点: 具体讲解: 记一次新浪前端面试(一) 今天上去十点半到新浪总部大厦面试前端岗,整理一下面试题以及自我感悟。 题目一: 给出下列代码,要求点击对应li标签的时候,标签中相应的内容会+1;  但给出的代码有不合理和不对的地方,请指出,并给出正确代码。 &lt;div&gt; &lt;ul&gt; &l...

麦子的博客 1010

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

推荐:吾记——轻盈优雅的日记应用前端框架

推荐:吾记——轻盈优雅的日记应用前端框架 在数字化时代,记录生活的方式变得多样化。吾记,一个精致的前端构建项目,以其简约而不失功能性的设计,成为众多日记爱好者的优选工具。今天,让我们一起深入了解吾记,探索它如何让日记编写和浏览变成一种享受。 项目介绍 吾记是一个专注于前端构建的日记应用框架,它不仅仅提供基本的日志管理功能,如登录注册、日记列表展示、日记的创建与编辑,还包括个性化的分类管理和过客视图...

gitblog_00006的博客 1035

【面试】【前端】【性能优化】前端性能优化总结

前端性能优化是提升用户体验的重要手段,面试中涉及的问题往往从理论到实践全面考察候选人对优化的理解。以下从性能优化的原则、方法、工具和常见问题解答入手,提供全面的总结。前端性能优化的核心是提升页面加载速度和响应效率,同时改善用户体验。通过合理的策略(如缓存、懒加载、压缩资源等)和工具(如 Lighthouse、Webpack),可以构建出高性能的前端应用。

qq_59344127的博客 1726

前端页面一次性渲染多条数据的优化

前端页面一次性渲染十万条数据的优化(时间分片) 在实际工作中,有时候会遇到一次性向页面插入大量数据的情况,比如:获取全国学校名称、获取专业名称等等。当遇到这样的需求时,如何才能在不卡页面的情况下渲染数据,对于一次性插入大量数据的情况,一般有两种做法: 1、时间分片;2、虚拟列表 这里只介绍如何使用时间分片来渲染大量数据: 一、一般渲染数据最简单粗暴的做法是 一次性渲染代码如下: <ul i...

baiqiangdoudou的博客 9171
上一篇: grpc-web,使用protoc.exe生成js文件报错Missing input file
下一篇: eslint error list
Hello_Tree__
博客等级 码龄8年 3粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值