移动Web开发入门(五) -- 性能优化

性能

性能简单说就是我们使用网站的响应速度,以及网页交互的流畅程度

移动端为什么进行性能优化

  • 提升用户体验
  • 移动端网络速度较慢
  • 移动设备性能较低

HTML性能优化

CSS、JS代码引入方式优化

在HTML中引入CSS、JS代码主要有两种方式:内联、外部文件引入。

内联

优点:

  • 减少HTTP请求;

缺点:

  • 代码不能复用;
  • 使HTML文件变大,使加载时间变长;
  • 不利于后期维护;

外部文件引入

优点:

  • 可以进行代码复用;
  • 有效利用了浏览器的静态资源缓存;
  • 代码分离,便于后期维护;

缺点:

  • 增加了HTTP请求;

这两种引入CSS、JS代码的方式各有利弊,没有好与坏,结合实际需要合理使用。

建议内联首屏需要的CSS、JS代码。

CSS、JS代码位置优化

CSS代码一般放在<head>,先加载CSS,避免DOM没有样式。

JS代码一般放在DOM结构下面,这是因为JS常用来操纵DOM,等DOM加载完再加载执行JS代码,符合代码的执行顺序。

不是所有的JS代码都放在后面,要按照实际需求合理放置。比如屏幕适配的JS代码,就要放在前面内联进来,因为越早适配用户体验越好。

如果将JS代码放在DOM结构之前,JS代码会先加载完,再等DOM加载,其次加载JS代码会阻塞DOM的加载与渲染。

代码的压缩与合并

借助webpack等工具将代码压缩,可以减少代码体积,HTTP请求也变小了。

合理的合并代码,可以减少HTTP请求次数,但注意不要过度合并,避免代码体积太大,请求变大也不利于后期代码的维护。

文件缓存

利用浏览器缓存,减少HTTP请求。

图片优化

大图片优化

图片大,HTTP请求大,可以将图片进行压缩处理(比如使用webp格式),简单的图形也可以用CSS画。

小图片优化

  • 使用iconfont;
  • 使用base64内嵌;
  • CSS精灵(雪碧图);

其他优化

  • 避免DOM层级太深;
  • 避免空链接(href、src不能为空);
  • 主要内容优先渲染(DOM结构放在前面);

CSS性能优化

CSS选择器优化

  • CSS选择器层级不要太深(简单无歧义);
  • 不使用通配符*(直接枚举);
  • 不留空选择器(选择器里没有属性,或属性被注释);

CSS属性优化

  • 提取公共属性,减少代码冗余;
  • 合并可以合并的属性;
  • 移动端推荐使用flex布局,不使用float布局;

JS性能优化

DOM操作优化

  • 尽量通过id操纵DOM(用id查找DOM最快);
  • 使用DocumentFragment,减少DOM操作;
  • 修改样式时不要单个属性进行修改,可以添加class实现;
  • 避免重排,减少重绘;

事件优化

  • 批量添加事件时使用事件委托,给父元素绑定事件;
  • 像scroll、mousemove等高频事件,结合节流和防抖使用,避免频繁触发;

懒加载和预加载

懒加载

先加载首屏的网络资源,其他的网络资源再按需加载。

预加载

提前加载网络资源,当用户需要查看时可直接从本地缓存中渲染。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

爱划水de鲸鱼哥~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值