优化性能
本章主要介绍应用的性能要求,以及如何优化应用的性能。
基本要求
首屏加载时间不超过 15 秒
为了提高用户体验,爱智要求每个 App 启动时从加载资源到首屏显示不能超过 15 秒, 如果超时系统会弹出提醒。如果应用的启动时间过长,需要优化应用的首屏加载时间,以保证 App 的正常启动。
支持遗嘱权限
App 申请遗嘱(will)权限后,当用户关闭该 App 时,系统不会立即关闭该应用,而是会保留一些时间处理任务,开发者需要保证尽可能快的进行数据保存,否则进程将强制结束。
优化方法
开发者可以通过以下两种方式,提高首屏响应速度:
- 基础优化:优化基础代码,减少影响首屏响应的因素。
- 项目优化:通过项目优化提高首屏的响应速度,保证项目正常启动,提高用户体验。
基础优化
参考以下示例,使用 link 标签将样式表放在 html 文件的 head 中,可以有效避免白屏和无样式内容的闪烁。
<head> <link rel="stylesheet" href="example.css" /> </head>
参考以下示例,将脚本放在 html 文件的底部,这样不会阻塞页面内容的呈现,而且页面中的可视组件可以尽早下载。
<body> <!-- 将脚本放在底部 --> <script src="example.js"></script> </body>
使用矢量图标,相较于图片而言资源占用更小,如果你的项目里有小图标,请使用矢量图标。
对代码进行压缩,例如:使用 UglifyJS 进行代码压缩,UglifyJS 是一个集 js 解释器、最小化器、压缩器和美化器的工具集。
CDN 缓存优化
CDN 指的是一组分布在各个地区的服务器。这些服务器存储着数据的副本,因此服务器可以根据哪些服务器与用户距离最近,来满足数据的请求。CDN 提供快速服务,较少受高流量影响。相较于其他的缓存(优化页面流畅程度),CDN 缓存更多的是为了优化首屏加载速度。我们建议开发者提供本地资源包,以便 App 离线工作。
项目优化
利用 PWA 技术优化项目代码,可以有效降低首屏响应时间。PWA 全称 Progressive Web App,即渐进式 Web 应用。一个 PWA 应用首先是一个页面,可以通过 Web 技术编写出一个页面应用,随后添加 App Manifest 和 Service Worker 来实现 PWA 的安装和离线等功能。Service Worker 是为解决 “Web App 的用户体验不如 Native App” 的普遍问题而提供的一系列技术集合,Service Worker 是 PWA 的核心技术,它能够为 web 应用提供离线缓存功能,下面列举了一些 Service Worker 的特性:
- 基于 HTTPS 环境,这是构建 PWA 的硬性前提
- 是一个独立的 worker 线程,独立于当前页面进程,有自己独立的 worker context
- 可拦截 HTTP 请求和响应,可缓存文件,缓存的文件可以在网络离线状态时取到
- 能向客户端推送消息
- 不能直接操作 DOM
- 异步实现,内部大都是通过 Promise 实现
若要在代码中使用 PWA 进行项目优化,请参考以下链接: