0

0

移动端HTML5性能优化

巴扎黑

巴扎黑

发布时间:2017-03-22 11:09:48

|

2374人浏览过

|

来源于php中文网

原创

移动端html5性能优化 
[导读] 得益于智能手机的普及和各行各业互联网+的运动,移动端的市场占比疯狂增长。 2016年1月发布的2015年电商数据显示,2015年中国移动端网购交易额同比暴涨123 2%,在网购总交易额中的占比首次超越pc端达到55%。 
技术上,html5大行其道: 
1:有数据显示,截至2015,有80%的app全部或部分基于html5。 
2:谷歌浏览器于9月1日起不在支持自动播放flash。 
3:亚马逊旗下网站(包括amazon.com门户在内)的所有广告将不再使用flash。在可预见的未来,flash广告将被html5广告所取代。 
移动端+html5,这个组合对前端工程师来说是个不小的挑战:如何让开发的页面能有更好的体验?这就是我们今天讨论的话题:移动端html5页面前端性能优化。 
php中文网html5培训,如何优化html5在移动设置上的性能表现,首先需要明确以下几个原则: 
1、pc优化手段在mobile端同样适用。 
2、在mobile侧我们提出三秒种渲染完成首屏指标。 
3、基于第二点,首屏加载3秒完成或使用loading。 
4、基于联通3g网络平均338kb/s(2.71mb/s),所以首屏资源不应超过1014kb。 
5、mobile端因手机配置原因,除加载外渲染速度也是优化重点。 
6、基于第五点,要合理处理代码减少渲染损耗。 
7、基于第二、第五点,所有影响首屏加载和渲染的代码应在处理逻辑中后置。 
8、加载完成后用户交互使用时也需注意性能。 
我们针对其中几个代表性方案进行探讨: 
加载优化 
对于移动端的网页来说,加载过程是最为耗时的过程,可能会占到总耗时的80%时间,因此是优化的重点,当然,手机站的其他前端要素优化也是不能忽略的。 
1、减少http请求 
因为手机浏览器同时响应请求为4个请求(android支持4个,ios 5后可支持6个),所以要尽量减少页面的请求数,首次加载同时请求数不能超过4个,建议优化要点为以下2点: 
1、合并css、java 
2、合并小图片,使用雪碧图 
2、缓存 
用缓存可以减少向服务器的请求数,节省加载时间,所以所有静态资源都要在服务器端设置缓存,并且尽量使用长cache(长cache资源的更新可使用时间戳)。 
1、缓存一切可缓存的资源 
2、使用长cache(使用时间戳更新cache) 
3、使用外联式引用css、java 
3、压缩html、css、java 
减少资源大小可以加快网页显示速度,所以要对html、css、java等进行代码压缩,并在服务器端设置gzip。 
1、压缩(例如,多余的空格、换行符和缩进) 
2、启用gzip 
4、无阻塞 
写在html头部的java(无异步),和写在html标签中的style会阻塞页面的渲染,因此css放在页面头部并使用link方式引入,避免在html标签中写style,java放在页面尾部或使用异步方式加载 
5、使用首屏加载 
首屏的快速显示,可以大大提升用户对页面速度的感知,因此应尽量针对首屏的快速显示做优化。 
6、按需加载 
将不影响首屏的资源和当前屏幕资源不用的资源放到用户需要时才加载,可以大大提升重要资源的显示速度和降低总体流量。 
1、lazyload 
2、滚屏加载 
3、通过media query加载 
另外,提醒大家一点:按需加载会导致大量重绘,影响渲染性能。 
7、预加载 
大型重资源页面(如游戏)可使用增加loading的方法,资源加载完成后再显示页面,但loading时间过长,会造成用户流失。 
1、可感知loading(如进入空间游戏的loading) 
2、不可感知的loading(如提前加载下一页) 
3、对用户行为分析,可以在当前页加载下一页资源,提升速度。 
8、压缩图片 
图片是最占流量的资源,因此尽量避免使用他,使用时选择最合适的格式(实现需求的前提下,以大小判断),合适的大小,然后使用智图压缩,同时在代码中用srcset来按需显示。 
1、使用智图 
2、使用其它方式代替图片(使用css3;使用svg;使用iconfont) 
3、使用srcset 
4、选择合适的图片(webp优于jpg;png8优于gif) 
5、选择合适的大小(首次加载不大于1014kb;基于手机屏幕一般宽度不宽于640) 
提醒大家一点:过度压缩图片大小影响图片显示效果。 
9、减少cookie,避免重定向以及异步加载第三方资源 
cookie会影响加载速度,所以静态资源域名不使用cookie。另外,重定向会影响加载速度,所以在服务器正确设置避免重定向。还有,第三方资源不可控会影响页面的加载和显示,因此要异步加载第三方资源。 
脚本执行优化 
脚本处理不当会阻塞页面加载、渲染,因此在使用时需要注意以下几点: 
1、css写在头部,java写在尾部或异步。 
2、避免图片和iframe等的空src,空src会重新加载当前页面,影响速度和效率。 
3、尽量避免重设图片大小,重设图片大小是指在页面、css、java等中多次重置图片大小,多次重设图片大小会引发图片的多次重绘,影响性能。 
4、图片尽量避免使用dataurl,dataurl图片没有使用图片的压缩算法文件会变大,并且要解码后再渲染,加载慢耗时长。 
css优化 
1、尽量避免写在html标签中写style属性。 
2、避免css表达式,css表达式的执行需跳出css树的渲染,因此请避免css表达式。 
3、移除空的css规则,空的css规则增加了css文件的大小,且影响css树的执行,所以需移除空的css规则。 
4、正确使用display的属性,display属性会影响页面的渲染,建议各位站长要合理使用。 
(1)、display:inline后不应该再使用width、height、margin、padding以及float 
(2)、display:inline-block后不应该再使用float 
(3)、display:block后不应该再使用vertical-align 
(4)、display:table-*后不应该再使用margin或者float 
5、不滥用float,float在渲染时计算量比较大,尽量减少使用。 
6、不滥用web字体,web字体需要下载,解析,重绘当前页面,尽量减少使用。 
7、不声明过多的font-size,过多的font-size引发css树的效率。 
8、值为0时不需要任何单位,为了浏览器的兼容性和性能,值为0时不要带单位。 
9、标准化各种浏览器前缀 
(1)、无前缀应放在最后。 
(2)、css动画只用(-webkit- 无前缀)两种即可。 
(3)、其它前缀为“-webkit- -moz- -ms-无前缀”四种(-o-opera浏览器改用blink内核,所以淘汰)。 
10、避免让选择符看起来像正则表达式。 
高级选择器执行耗时长且不易读懂,避免使用。 
java执行优化 
1、减少重绘和回流 
(1)、避免不必要的dom操作 
(2)、尽量改变class而不是style,使用classlist代替classname 
(3)、避免使用document.write 
(4)、减少drawimage 
2、缓存dom选择与计算,每次dom选择都要计算,缓存他。 
3、缓存列表.length,每次.length都要计算,用一个变量保存这个值。 
4、尽量使用事件代理,避免批量绑定事件。 
5、尽量使用id选择器,id选择器是最快的。 
6、touch事件优化,使用touchstart、touchend代替click,因快影响速度快,但应注意touch响应过快,易引发误操作。 
渲染优化 
html文档是以包含文档编码信息的数据流方式在网络间传输,页面的编码信息一般会在http响应的头部信息或在文档内的html标记中指明,客户端浏览器只有在确定了页面编码后才能正确的渲染页面,所以在绘制页面或执行任何的java代码前,大部分的浏览器(ie6、ie7、ie8除外)都 会缓冲一定字节的数据来从中查找编码信息,不同的浏览器当中预缓冲的字节数是不一样的。 
1、html使用viewport 
viewport可以加速页面的渲染,请使用以下代码: 
2、减少dom节点 
dom节点太多影响页面的渲染,应尽量减少dom节点。 
3、动画优化 
(1)、尽量使用css3动画。 
(2)、合理使用requestanimationframe动画代替settimeout。 
(3)、适当使用canvas动画5个元素以内使用css动画,5个以上使用canvas动画(ios8可使用webgl)。 
4、高频事件优化 
touchmove、scroll事件可导致多次渲染。 
(1)、使用requestanimationframe监听帧变化,使得在正确的时间进行渲染。 
(2)、增加响应变化的时间间隔,减少重绘次数。 
5、gpu加速 

css中以下属性(css3 transitions、css3 3dtransforms、opacity、canvas、webgl、video)来触发gpu渲染,请合理使用。(ps:过渡使用会引发手机过耗电增加。)

相关文章:

移动端HTML5页面端去掉input输入框的白色背景和边框(兼容Android和ios)

移动端HTML5如何开发?跟PC端有什么区别?

创意个性HTML5手机移动端日期时间选择插件
创意个性HTML5手机移动端日期时间选择插件

创意个性HTML5手机移动端日期时间选择插件

下载

移动端HTML5应用,用户真的有需求么?有的话需求场景是什么?

立即学习前端免费学习笔记(深入)”;

相关文章

数码产品性能查询
数码产品性能查询

该软件包括了市面上所有手机CPU,手机跑分情况,电脑CPU,电脑产品信息等等,方便需要大家查阅数码产品最新情况,了解产品特性,能够进行对比选择最具性价比的商品。

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
go语言 注释编码
go语言 注释编码

本专题整合了go语言注释、注释规范等等内容,阅读专题下面的文章了解更多详细内容。

2

2026.01.31

go语言 math包
go语言 math包

本专题整合了go语言math包相关内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

go语言输入函数
go语言输入函数

本专题整合了go语言输入相关教程内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

golang 循环遍历
golang 循环遍历

本专题整合了golang循环遍历相关教程,阅读专题下面的文章了解更多详细内容。

0

2026.01.31

Golang人工智能合集
Golang人工智能合集

本专题整合了Golang人工智能相关内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

76

2026.01.31

高干文在线阅读网站大全
高干文在线阅读网站大全

汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

73

2026.01.31

无需付费的漫画app大全
无需付费的漫画app大全

想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

67

2026.01.31

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

19

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
HTML5/CSS3/JavaScript/ES6入门课程
HTML5/CSS3/JavaScript/ES6入门课程

共102课时 | 6.9万人学习

HTML+CSS基础与实战
HTML+CSS基础与实战

共132课时 | 10万人学习

前端开发(基础+实战项目合集)
前端开发(基础+实战项目合集)

共60课时 | 3.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号