移动HTML5前端性能优化总结

概述

1. PC优化手段在Mobile侧同样适用

2. 在Mobile侧我们提出三秒种渲染完成首屏指标

3. 基于第二点,首屏加载3秒完成或使用Loading

4. 基于联通3G网络平均338KB/s(2.71Mb/s),所以首屏资源不应超过1014KB

5. Mobile侧因手机配置原因,除加载外渲染速度也是优化重点

6. 基于第五点,要合理处理代码减少渲染损耗

7. 基于第二、第五点,所有影响首屏加载和渲染的代码应在处理逻辑中后置

8. 加载完成后用户交互使用时也需注意性能

优化指南

[加载优化]

加载过程是最为耗时的过程,可能会占到总耗时的80%时间,因此是优化的重点

·减少HTTP请求

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

a)合并CSS、JavaScript

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

·缓存

使用缓存可以减少向服务器的请求数,节省加载时间,所以所有静态资源都要在服务器端设置缓存,并且尽量使用长Cache(长Cache资源的更新可使用时间戳)

a)缓存一切可缓存的资源

b)使用长Cache(使用时间戳更新Cache)

c)使用外联式引用CSS、JavaScript

·压缩HTML、CSS、JavaScript

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

a)压缩(例如,多余的空格、换行符和缩进)

b)启用GZip

·无阻塞

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

·使用首屏加载

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

·按需加载

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

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

a)LazyLoad

b)滚屏加载

c)通过Media Query加载

·预加载

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

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

a)可感知Loading(如进入空间游戏的Loading)

b)不可感知的Loading(如提前加载下一页)

·压缩图片

图片是最占流量的资源,因此尽量避免使用他,使用时选择最合适的格式(实现需求的前提下,以大小判断),合适的大小,然后使用智图压缩,同时在代码中用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(基于手机屏幕一般宽度))

·减少Cookie

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

·避免重定向

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

·异步加载第三方资源

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

[脚本执行优化]

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

·CSS写在头部,JavaScript写在尾部或异步

·避免图片和iFrame等的空Src

空Src会重新加载当前页面,影响速度和效率

·尽量避免重设图片大小

重设图片大小是指在页面、CSS、JavaScript等中多次重置图片大小,多次重设图片大小会引发图片的多次重绘,影响性能

·图片尽量避免使用DataURL

DataURL图片没有使用图片的压缩算法文件会变大,并且要解码后再渲染,加载慢耗时长

[CSS优化]

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

·避免CSS表达式

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

·移除空的CSS规则

空的CSS规则增加了CSS文件的大小,且影响CSS树的执行,所以需移除空的CSS规则

·正确使用Display的属性

Display属性会影响页面的渲染,因此请合理使用

a)display:inline后不应该再使用width、height、margin、padding以及float

b)display:inline-block后不应该再使用float

c)display:block后不应该再使用vertical-align

d)display:table-*后不应该再使用margin或者float

·不滥用Float

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

·不滥用Web字体

Web字体需要下载,解析,重绘当前页面,尽量减少使用

·不声明过多的Font-size

过多的Font-size引发CSS树的效率

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

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

·标准化各种浏览器前缀

a)无前缀应放在最后

b)CSS动画只用 (-webkit- 无前缀)两种即可

c)其它前缀为 -webkit- -moz- -ms- 无前缀 四种,(-o-Opera浏览器改用blink内核,所以淘汰)

·避免让选择符看起来像正则表达式

高级选择器执行耗时长且不易读懂,避免使用

[JavaScript执行优化]

·减少重绘和回流

a)避免不必要的Dom操作

b)尽量改变Class而不是Style,使用classList代替className

c)避免使用document.write

d)减少drawImage

·缓存Dom选择与计算

每次Dom选择都要计算,缓存他

·缓存列表.length

每次.length都要计算,用一个变量保存这个值

·尽量使用事件代理,避免批量绑定事件

·尽量使用ID选择器

ID选择器是最快的

·TOUCH事件优化

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

[渲染优化]

·HTML使用Viewport

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

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

·减少Dom节点

Dom节点太多影响页面的渲染,应尽量减少Dom节点

·动画优化

a)尽量使用CSS3动画

b)合理使用requestAnimationFrame动画代替setTimeout

c)适当使用Canvas动画 5个元素以内使用css动画,5个以上使用Canvas动画(iOS8可使用webGL)

·高频事件优化

Touchmove、Scroll 事件可导致多次渲染

a)使用requestAnimationFrame监听帧变化,使得在正确的时间进行渲染

b)增加响应变化的时间间隔,减少重绘次数

·GPU加速

CSS中以下属性(CSS3 transitions、CSS3 3D transforms、Opacity、Canvas、WebGL、Video)来触发GPU渲染,请合理使用

更多web前端文章及教材请加 web前端开发学习群 547860425,一起交流学习

时间: 2024-08-04 09:50:55

移动HTML5前端性能优化总结的相关文章

移动HTML5前端性能优化指南

(点击看大图) 移动H5前端性能优化指南[托尼托尼研究所] 概述 1. PC优化手段在Mobile侧同样适用2. 在Mobile侧我们提出三秒种渲染完成首屏指标3. 基于第二点,首屏加载3秒完成或使用Loading4. 基于联通3G网络平均338KB/s(2.71Mb/s),所以首屏资源不应超过1014KB5. Mobile侧因手机配置原因,除加载外渲染速度也是优化重点6. 基于第五点,要合理处理代码减少渲染损耗7. 基于第二.第五点,所有影响首屏加载和渲染的代码应在处理逻辑中后置8. 加载完成

前端性能优化的14个规则

作为一个半前端工程师,而且只会写点HTML5和CSS3的“假”前端工程师,为了能更好地理解一下前端的花花世界,最近拜读了<高性能网站建设指南>一书,对作者提出的前端性能优化的14个规则获益匪浅,为了让自己印象更深刻点,决定作此文,当做学习笔记也好,知识总结也罢,总归看过的东西要让自己很好地掌握很好地运用起来才是王道.在解读这些规则的同时,我会用我一年半多的移动网站开发经历提出一些针对移动网站的优化建议. 规则01:尽量减少HTTP请求前端优化的黄金准则指导着前端页面的优化策略:只有10%-20

前端性能优化分析

说道性能优化,相信大家都看过网页的源代码,和我们平常写的可能有些不同,在审查元素里面看到的代码都是经过压缩过的,这也是我们前端优化的一种,在一些比较大的公司会使用到grunt来进行代码的压缩或者是合并,在一些小的公司就会使用一些别的方法,下面我就简单介绍一下比较常见的前端优化. 在这里我们主要分为三个方向来介绍,首先我们要介绍的就是网络方面的,这个主要分为DNS的解析,CDN的加速,和延迟加载以及预加载在这里的cdn主要是借助于一些大型公司的服务器,进行加载,这样会提升加载的效率. 第二个就是我

前端性能优化 - 资源预加载

转帖: https://css-tricks.com/prefetching-preloading-prebrowsing 当提到前端性能优化时,我们首先会联想到文件的合并.压缩,文件缓存和开启服务器端的 gzip 压缩等,这使得页面加载更快,用户可以尽快使用我们的 Web 应用来达到他们的目标. 资源预加载是另一个性能优化技术,我们可以使用该技术来预先告知浏览器某些资源可能在将来会被使用到. 引用 Patrick Hamann 的解释: 预加载是浏览器对将来可能被使用资源的一种暗示,一些资源可

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

上一篇讲了PC端的部分:前端性能优化(PC端),这次继续说移动端的.相对于PC端的,移动web浏览器上有一些明显的特点:设备的屏幕小.新特性兼容性较好.支持一些比较新的HTML5和CSS3.需要与Native应用交互等.但移动端可用的CPU资源和网络资源极为有限,因此要做好移动端web上的优化往往需要考虑做更多的事情.首先在移动web的前端页面渲染中,PC的优化规则同样适用,此外针对浏览器也要做一些更细节的优化达到更好的效果.需要注意的是,并不是移动端的优化在PC端不适用,而是由于兼容性的原因,

CSS3与页面布局学习笔记(八)——浏览器兼容性问题与前端性能优化方案

一.浏览器兼容 1.1.概要 世界上没有任何一个浏览器是一样的,同样的代码在不一样的浏览器上运行就存在兼容性问题.不同浏览器其内核亦不尽相同,相同内核的版本不同,相同版本的内核浏览器品牌不一样,各种运行平台还存在差异.屏幕分辨率不一样,大小不一样,比例不一样.兼容性主要可以分类为: 1).CSS兼容2).JavaScript兼容3).HTML兼容 这三类也是前端的主要组成部分,都存在一定的兼容性问题,知己知彼,百战百胜,我们先了解浏览器的发动机—内核. 多年前我们一直为IE6兼容烦恼,为它没少加

移动H5前端性能优化指南[转]

移动H5前端性能优化指南 米随随2015.01.23 移动H5前端性能优化指南 概述 1. PC优化手段在Mobile侧同样适用2. 在Mobile侧我们提出三秒种渲染完成首屏指标3. 基于第二点,首屏加载3秒完成或使用Loading4. 基于联通3G网络平均338KB/s(2.71Mb/s),所以首屏资源不应超过1014KB5. Mobile侧因手机配置原因,除加载外渲染速度也是优化重点6. 基于第五点,要合理处理代码减少渲染损耗7. 基于第二.第五点,所有影响首屏加载和渲染的代码应在处理逻辑

关于Yahoo十四条军规与前端性能优化

关于Yahoo十四条军规与前端性能优化 热度 4已有 223 次阅读2014-8-3 15:01 |个人分类:前端相关|系统分类:前端优化| 前端优化, yahoo, 性能优化 启用Gzip压缩.Gzip的思想就是把文件先在服务器端进行压缩,然后再传输.这样可以显著减少文件传输的大小.传输完毕后浏览器会 重新对压缩过的内容进行解压缩,并执行.目前的浏览器都能“良好”地支持 gzip.不仅浏览器可以识别,而且各大“爬虫”也同样可以识别,各位seoer可以放下心了.而且gzip的压缩比例非常大,一般

前端性能优化的七大手段

前面的话 本文将详细介绍前端性能优化的七大手段,包括减小请求数量.减小资源大小.优化网络连接.优化资源加载.减少重绘回流.使用性能更好的API和构建优化 减小请求数量 [合并] 如果不进行文件合并,有如下3个隐患 1.文件与文件之间有插入的上行请求,增加了N-1个网络延迟 2.受丢包问题影响更严重 3.经过代理服务器时可能会被断开 但是,文件合并本身也有自己的问题 1.首屏渲染问题 2.缓存失效问题 所以,对于文件合并,有如下改进建议 1.公共库合并 2.不同页面单独合并 [图片处理] 1.雪碧