移动端开发优化总结

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 首屏数据请求提前,避免 JavaScript 文件加载后才请求数据 为了进一步提升页面加载速度,可以考虑将页面的数据请求尽可能提前,避免在 JavaScript 加载完成后才去请求数据。通常数据请求是页面内容渲染中关键路径最长的部分,而且不能并行,所以如果能将数据请求提前,可以极大程度上缩短页面内容的渲染完成时间。
  • 首屏数据请求提前,避免 JavaScript 文件加载后才请求数据

    为了进一步提升页面加载速度,可以考虑将页面的数据请求尽可能提前,避免在 JavaScript 加载完成后才去请求数据。通常数据请求是页面内容渲染中关键路径最长的部分,而且不能并行,所以如果能将数据请求提前,可以极大程度上缩短页面内容的渲染完成时间。

  • 首屏加载和按需加载,非首屏内容滚屏加载,保证首屏内容最小化

    JavaScript 资源放到 HTML 文档底部可以防止 JavaScript 的加载和解析执行对页面渲染造成阻塞。由于 JavaScript 资源默认是解析阻塞的,除非被标记为异步或者通过其他的异步方式加载,否则会阻塞 HTML DOM 解析和 CSS 渲染的过程。

  • 模块化资源并行下载

    在加载大量的图片元素时,尽量预先限定图片的尺寸大小,否则在图片加载过程中会更新图片的排版信息,产生大量的重排

  • inline 首屏必备的 CSS 和 JavaScript

    在 HTML 中直接缩放图片会导致页面内容的重排重绘,此时可能会使页面中的其他操作产生卡顿,因此要尽量减少在页面中直接进行图片缩放。

  • meta dns prefetch 设置 DNS 预解析

    设置文件资源的 DNS 预解析,让浏览器提前解析获取静态资源的主机 IP,避免等到请求时才发起 DNS 解析请求。通常在移动端 HTML 中可以采用如下方式完成。

<!--cdn域名预解析-->
<meta http-equiv="x-dns-prefetch-control" content="on" >
<link rel="dns-prefetch" href="//cdn.domain.com" >
  • 资源预加载

    对于移动端首屏加载后可能会被使用的资源,需要在首屏完成加载后尽快进行加载,保证在用户需要浏览时已经加载完成,这时候如果再去异步请求就显得很慢。

  • 图片压缩处理

    在移动端,通常要保证页面中一切用到的图片都是经过压缩优化处理的,而不是以原图的形式直接使用的,因为那样很消耗流量,而且加载时间更长。

  • 使用较小的图片,合理使用 base64 内嵌图片

    在页面使用的背景图片不多且较小的情况下,可以将图片转化成 base64 编码嵌入到 HTML 页面或 CSS 文件中,这样可以减少页面的 HTTP 请求数。需要注意的是,要保证图片较小,一般图片大小超过 2KB 就不推荐使用 base64 嵌入显示了。

  • 使用更高压缩比格式的图片

    使用具有较高压缩比格式的图片,如 webp(需要设计降级兼容方案)等。在同等图片画质的情况下,高压缩比格式的图片体积更小,能够更快完成文件传输,节省网络流量。

  • 图片懒加载

<img data-src="//cdn.domain.com/path/photo.jpg" alt="懒加载图片" >
  • 使用 MediaQuery 或 srcset 根据不同屏幕加载不同大小图片

  • 使用 iconfont 代替图片图标

  • 页面元素尽量使用事件代理,避免直接事件绑定

  • 尽量使用 id, 合理缓存 DOM 对象

  • 使用 touchstart 代替 click

  • 避免使用 eval、with,使用 join 代替连接符+,推荐使用 ECMAScript6 的字符串模板

  • 尽量使用 ECMAScript6+的特性来编程

  • 使用 NativeView 代替 DOM 的性能劣势

加载优化

  • 合并css、JavaScript
  • 合并小图片,使用雪碧图
  • 缓存一切可以缓存的资源
  • 使用长cache
  • 使用外联引用css、JavaScript
  • 压缩html、css、JavaScript
  • 启用GZip
  • 使用首屏加载
  • 使用按需加载
  • 使用滚动加载
  • 通过media query加载
  • 增加loading进度条
  • 减少cookie
  • 避免重定向
  • 异步加载第三方资源

css优化

  • 避免图片和iframe等空的src
  • 尽量避免重设图片大小
  • 图片尽量避免使用dataUrl
  • 避免html写style属性
  • 避免css表达式
  • 移除空的css规则
  • 不滥用float
  • 不滥用web字体
  • 不声明过多的font-size
  • 值为0时不需要任何单位
  • 标准化各浏览器前缀
  • 避免使用id选择器
  • 尽量坚持class嵌套

图片优化

  • 使用智图 七牛图片api
  • 使用(css3、svg、iconfont)代替图片

脚本优化

  • 减少重绘和回流
  • 缓存dom选择与计算
  • 缓存列表长度
  • 使用事件代理,避免批量绑定事件
  • 尽量使用id选择器
  • 使用touchstart、touchend代替click

渲染优化

  • html使用viewpoint
  • 减少dom节点
  • 尽量使用css3动画
  • 合理使用requestAnimationFrame动画代替setTimeout
  • 适当使用canvas动画
  • 使用css3 transitions、css3 3d transfroms、opacity、Canvas、webgl、video来触发GPU渲染
相关文章
|
7月前
|
前端开发 UED
探索前端开发中的无障碍设计与实践
在当今数字化时代,无障碍设计已经成为前端开发中不可忽视的重要环节。本文将介绍无障碍设计的概念和原则,并结合前端开发实践,探索如何为用户提供更加包容和友好的用户体验。
176 2
|
1月前
|
编解码 前端开发 UED
深度揭秘:前端工程师如何玩转响应式设计,打造完美用户体验!
随着移动互联网的普及,响应式设计(RWD)成为前端开发的重要技术,旨在使网站适应不同设备的屏幕尺寸。本文介绍响应式设计的核心概念,如流式布局、弹性图片和CSS3媒体查询,并探讨如何利用这些技术及框架(如Bootstrap)构建美观实用的网站,同时关注性能优化、可访问性和SEO。
50 3
|
1月前
|
Web App开发 前端开发 JavaScript
前端开发的秘密武器:这些工具让你轻松应对各种复杂布局!
【10月更文挑战第31天】前端开发充满挑战,尤其是在处理复杂布局时。本文介绍了几种关键工具和技术,如HTML和CSS基础、Firefox开发者工具、Visual Studio Code以及Vue、React和Angular等前端框架,帮助开发者高效应对复杂布局,提升代码质量和用户体验。
35 2
|
1月前
|
前端开发 JavaScript API
前端开发的秘密武器:这些工具让你轻松应对各种复杂动画效果!
【10月更文挑战第30天】前端开发中,动画效果为页面增添了无限生机。CSS3的@keyframes规则和JavaScript动画库如GSAP、Anime.js等,使开发者能轻松实现从简单到复杂的动画效果。掌握动画原理和设计原则,结合工具和库,可以创造出既美观又实用的动画,提升用户体验。
57 4
|
1月前
|
前端开发 开发者 UED
移动优先:响应式设计在现代Web开发中的实践策略
【10月更文挑战第29天】在现代Web开发中,响应式设计已成为不可或缺的实践策略,使网站能适应各种设备和屏幕尺寸。本文介绍了移动优先的设计理念,对比了移动优先与桌面优先的策略,探讨了流式布局与固定布局的区别,详细讲解了CSS媒体查询的使用方法,并强调了触摸和手势支持及性能优化的重要性。
36 1
|
2月前
|
前端开发 JavaScript API
深度剖析:前端如何驾驭海量数据,实现流畅渲染的多种途径
深度剖析:前端如何驾驭海量数据,实现流畅渲染的多种途径
90 3
|
4月前
|
Web App开发 前端开发 UED
移动端适配布局指南:打造完美用户体验的秘密武器
【8月更文挑战第26天】在Web前端开发中,选择合适的移动端适配方案对确保跨设备的良好显示与用户体验至关重要。常用方案包括:媒体查询实现响应式布局;百分比、flexbox与CSS Grid布局提供更灵活的设计;结合viewport元标签和rem单位实现等比缩放;利用第三方库如Bootstrap加速开发。实践中应综合运用这些技术,并通过广泛测试保证兼容性和效果。
96 4
|
5月前
|
编解码 缓存 前端开发
现代前端开发中的响应式设计实践与优化
在当今快节奏的互联网环境中,用户对网页的访问设备多样化,响应式设计成为前端开发中不可或缺的一环。本文探讨了响应式设计的重要性以及实现中的最佳实践,涵盖了基本概念、布局策略、以及性能优化的关键技术,为开发人员提供了全面的指导与思路。
|
7月前
|
Web App开发 前端开发 UED
前端开发之移动端体验优化
在一个前端项目中,面对移动端网页加载慢的问题,团队使用Chrome开发者工具和Lighthouse进行性能分析,发现资源加载、重绘回流和首屏空白是瓶颈。通过压缩图片和视频、使用懒加载、优化CSS样式、预加载内容及利用阿里云CDN,成功提升加载速度,改善用户体验,强调了前端性能优化的关键性。
137 0
前端开发之移动端体验优化
下一篇
DataWorks