移动端优化篇

作者: 老王420 | 来源:发表于2018-11-20 22:19 被阅读89次

减少资源大小可以加快网页显示速度,所以要对 HTMLCSSJavaScript 等进行代码压缩,并在服务器端设置 GZip

GZip

2.3 无阻塞

写在 HTML 头部的 JavaScript (无异步),和写在 HTML 标签中的 Style 会阻塞页面的渲染,因此 CSS 放在页面头部并使用 Link 方式引入,避免在 HTML 标签中写 StyleJavaScript 放在页面尾部或使用异步方式加载

2.4 使用首屏加载

首屏的快速显示,可以大大提升用户对页面速度的感知,因此应尽量针对首屏的快速显示做优化。

2.5 按需加载

将不影响首屏的资源和当前屏幕资源不用的资源放到用户需要时才加载,可以大大提升重要资源的显示速度和降低总体流量。

PS:按需加载会导致大量重绘,影响渲染性能

LazyLoad
Media Query

2.6 预加载

大型重资源页面(如游戏)可使用增加 Loading 的方法,资源加载完成后再显示页面。但 Loading 时间过长,会造成用户流失。

对用户行为分析,可以在当前页加载下一页资源,提升速度。

Loading
Loading

2.7 压缩图片

图片是最占流量的资源,因此尽量避免使用他,使用时选择最合适的格式(实现需求的前提下,以大小判断),合适的大小,然后使用智图压缩,同时在代码中用 Srcset 来按需显示

PS:过度压缩图片大小影响图片显示效果

  • a)使用智图( http://zhitu.tencent.com/
  • b)使用其它方式代替图片(1. 使用 CSS3 2. 使用 SVG 3. 使用 IconFont
  • c)使用 Srcset
  • d)选择合适的图片(1. webP 优于 JPG 2. PNG8 优于 GIF
  • e)选择合适的大小(1. 首次加载不大于 1014KB 2. 不宽于 640 (基于手机屏幕一般宽度))

2.8 减少Cookie

Cookie 会影响加载速度,所以静态资源域名不使用 Cookie

2.9 避免重定向

重定向会影响加载速度,所以在服务器正确设置避免重定向。

2.10 异步加载第三方资源

第三方资源不可控会影响页面的加载和显示,因此要异步加载第三方资源

2.11 减少HTTP请求

因为手机浏览器同时响应请求为4个请求( Android 支持4个, iOS 5后可支持6个),所以要尽量减少页面的请求数,首次加载同时请求数不能超过4个

  • a)合并 CSSJavaScript
  • b)合并小图片,使用雪碧图

三、脚本执行优化

脚本处理不当会阻塞页面加载、渲染,因此在使用时需当注意

  • CSS 写在头部, JavaScript 写在尾部或异步
  • 避免图片和 iFrame 等的空 Src ,空 Src 会重新加载当前页面,影响速度和效率。
  • 尽量避免重设图片大小
  • 重设图片大小是指在页面、 CSS 、J avaScript 等中多次重置图片大小,多次重设图片大小会引发图片的多次重绘,影响性能
  • 图片尽量避免使用 DataURLDataURL 图片没有使用图片的压缩算法文件会变大,并且要解码后再渲染,加载慢耗时长

四、CSS优化

尽量避免写在HTML标签中写 Style 属性

4.1 css3过渡动画开启硬件加速

.translate3d{
   -webkit-transform: translate3d(0, 0, 0);
   -moz-transform: translate3d(0, 0, 0);
   -ms-transform: translate3d(0, 0, 0);
   transform: translate3d(0, 0, 0);
 }

4.2 避免CSS表达式

CSS表达式的执行需跳出CSS树的渲染,因此请避免CSS表达式。

4.3 不滥用Float

Float在渲染时计算量比较大,尽量减少使用

4.4 值为0时不需要任何单位

为了浏览器的兼容性和性能,值为 0 时不要带单位

五、JavaScript执行优化

5.1 减少重绘和回流

  • 避免不必要的Dom操作
  • 尽量改变 Class 而不是 Style ,使用 classList 代替 className
  • 避免使用 document.write
  • 减少 drawImage

5.2 TOUCH事件优化

使用 touchstarttouchend 代替 click ,因快影响速度快。但应注意 Touch 响应过快,易引发误操作

六、渲染优化

6.1 HTML使用Viewport

Viewport可以加速页面的渲染,请使用以下代码

<meta name=”viewport” content=”width=device-width, initial-scale=1″>

6.2 动画优化

  • 尽量使用 CSS3 动画
  • 合理使用 requestAnimationFrame 动画代替 setTimeout
  • 适当使用 Canvas 动画 5 个元素以内使用 css 动画, 5 个以上使用 Canvas 动画( iOS8可使用 webGL

6.4 高频事件优化

TouchmoveScroll 事件可导致多次渲染

requestAnimationFrame

本次给大家推荐一个免费的学习群,里面概括移动应用网站开发,css,html,webpack,vue node angular以及面试资源等。
对web开发技术感兴趣的同学,欢迎加入Q群:943129070,不管你是小白还是大牛我都欢迎,还有大牛整理的一套高效率学习路线和教程与您免费分享,同时每天更新视频资料。
最后,祝大家早日学有所成,拿到满意offer,快速升职加薪,走上人生巅峰。

相关文章

  • 移动端优化篇

    减少资源大小可以加快网页显示速度,所以要对 HTML 、 CSS 、 JavaScript 等进行代码压缩,并在服...

  • 浅谈前端性能优化(移动端)

    上一篇讲了PC端的部分:前端性能优化(PC端),这次继续说移动端的。相对于PC端的,移动web浏览器上有一些明显的...

  • Rhyke.js 使用例子

    移动端桌面端无法同时开启。移动端长按方案有问题。判断错误算法可优化。

  • ios - 收藏集 - 掘金

    天弘基金移动 App 客户端架构优化之路 - iOS - 掘金天弘基金移动App客户端架构优化之路 随着移动互联网...

  • 移动端优化

    1、解决点击 300ms 延迟 问题原因:点击的 300ms 延迟是由双击缩放机制所导致的,由于用户可以进行双击缩...

  • 移动端优化

    1. 代码优化##### css和js文件需要uglify 使用grunt等构建化工具 2. 图片优化##### ...

  • 前端性能优化常用总结

    正文 前端优化层出不穷,移动端大行其道的现在,我们可以说优化好移动端,PC端也将会更好。所以,我们可以综合以下图片...

  • 搜索引擎优化复盘9,移动端SEO

    第九章 移动端SEO 1.1 移动端SEO 移动端SEO指的是优化用户在智能手机和平板设备上访问网站的体验,移动...

  • SEO之移动搜索优化

    移动搜索优化与PC端优化差别不大,除了PC端相同的优化除外,在移动搜索优化时我们主要考虑的是代码层面的优化,要让用...

  • H5移动端的性能优化

    H5 移动端的性能优化V1.0 一、渲染优化 二、css优化 三、加载优化 四、脚本执行优化

网友评论

    本文标题:移动端优化篇

    本文链接:https://www.haomeiwen.com/subject/dsefqqtx.html