前端性能优化

HTTP相关

指标:请求个数

  • 浏览器对同一个域名有连接数限制,不同浏览器内核、不同版本的请求数不尽相同,大部分的并发请求数是6个
  • 控制http请求的数量,减少http请求时间,达到减少网页加载和呈现的时间,能带来更好的用户体验

优化方案:

  • **CSS Sprite : **将小图标和背景图像合并到一张图片上,然后利用CSS的背景定位来显示需要显示的图片部分
  • **HTML 图像地图 : **小图合并大图,从html代码的方式来控制显示区域
  • **js CSS 合并 : **将多个小的js、CSS合并成一个大的js、CSS文件,间接达到减少http请求的目的

指标:组件是否压缩

  • 增加CPU压缩解压缩时间来减少网络传输消耗,并且通常网络资源较cpu资源更紧张,所以对合适的对象设置压缩能个取得良好的收益

优化方案

  • **压缩方法:**在http请求中设置所接受到压缩方式,在Server端对Response资源进行压缩再传给浏览器。一般使用GZIP设置content-Encoding字段
  • **压缩对象:**从http请求返回资源中的html,js,CSS,xml等都可以设置压缩,通常通过去掉空格和回车来压缩,再经过GZIP压缩,能达到良好的压缩效果
指标:图片格式和大小是否合适
  • **图片格式:**显示效果较好的图片格式中,有webp、jpg和png24/32这几种常见的图片格式。一般来说,webp的图片最小,但在iOS或者android4.0以下的系统中可能会有兼容性问题需要解决。
  • **图片尺寸:**这获取图片尺寸时候应该考虑图片具体的展示场景,如当前移动设备中常用个尺寸规格为480×800、600×1024、720×1280,800×1280等,从原图来保证图片能够被呈现,而不是通过代码对图片放大或缩小。
  • **图片压缩:**对于jpg,png格式图片来说本身就已经经过了压缩,这对于稀缺的带宽资源是不够的,我们还需要更加优化的压缩算法,通过一系列的图片压缩工具如TinyPNG, Smush.it可以得到更好的压缩且图片质量不变。
指标:CSS放在顶部
  • 如果网页是动态生成的,那么在head代码完成后可以页面输出,这样浏览器就会更快地解析出来head中的内容,开始下载CSS文件资源。
  • CSS放在底部则会引起重新绘制,用户侧感受到“闪屏”的不好体验。
指标:JS放在底部
  • JS在下载的时候会引起两个问题:
  • 阻止网页内容的展示并阻止其他资源下载。各种资源的下载是并行的,下载js时候,并行下载机制失效。
  • js中可能包括document.write等改变页面布局的操作,渲染引擎会等待js下载完成再开始渲染。用户页面加载时间会因为等待而变得更长
指标:JS &CSS压缩
指标:是否添加缓存
  • Cache-Control
  • “no-cache”指示请求或响应消息不能缓存(HTTP/1.0用Pragma的no-cache替换)
  • “no-store”用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。
指标:避免非200返回值
  • 状态码:
  • 1xx:请求收到,这些状态代码表示临时的响应。
  • 2xx:操作成功,这类状态代码表明服务器成功地接受了客户端请求。
  • 3xx:重定向,客户端浏览器必须采取更多操作来实现请求。
  • 4xx:客户端错误,发生错误,客户端似乎有问题。
  • 5xx:服务器错误,服务器由于遇到错误而不能完成该请求。
指标:使用CDN
  • CDN内容分发网络(Content Delivery Network):将源站内容发布到最接近用户的“边缘”节点,使用户可就近取得所需内容,提高用户访问的响应速度和成功率。解决因分布、带宽、服务器能力带来的访问延迟高问题,提供一系列加速解决方案。

时间相关

  • **白屏时间:**用户首次看到网页有内容的时间,即第一次渲染流程完成时间。
  • **首屏时间:**是指用户看到第一屏,即整个网页顶部大小为当前窗口的区域,显示完整的时间。
  • **首资源下载时间:**从开始下载到第一个资源均下载完成的时间,不包括页面绘制时间。
  • **总资源下载时间:**从开始下载到所有资源均下载完成的时间,不包括页面绘制时间。
  • **用户可操作时间:**从页面开始加载到用户操作可响应的时间。

WebView相关

  • **内存:**加载页面前后内存变化,可间接反映H5中资源数量和大小,如dom数量,图片大小。
  • **CPU:**当页面中资源样式复杂,强调视觉效果时,观察CPU占用率来反映H5绘制质量。如果CPU长期处于高占用率,可考虑降低高计算量的视觉效果等手段。
  • **FPS:**帧率尤其在有视频和动画效果的H5中,应该重点关注,防止严重的卡顿流出。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我想静静[静]_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值