-
优化请求包大小
-
代码压缩
-
Gzip压缩
-
不同网络(2G/3G/4G/wifi)图片尺寸
-
合理减少Header字段/cookie
-
MTU策略(1500字节)
-
首屏加载时间控制
-
3s完成(5s为用户最大容忍度)
-
网络平均速度(2.71Mb/s = 0.33875MBps(1Mbps=8MBps) = 346.88KBps)
-
不超过1041KB,经验值200K(考虑打开响应、网络连接至少600ms)
-
-
-
减少请求次数(仅针对HTTP)
-
合并js、css文件、雪碧图
-
移动端雪碧图(构建)
-
combo
-
-
避免重定向(一次重定向至少600ms)
-
避免重复资源请求
-
同时并行请求数量(android:4个,ios 5以后可支持6个)
-
-
解耦请求依赖
-
文件并行加载/依赖执行(构建+模块化)
-
首屏CGI提前(组件)
-
inline首页必备js/css
-
异步加载非首屏
-
-
连接优化
-
支持keep-alive
-
网络时间
-
DNS(2G:3.85785;3G:1.60643;WIFI:0.986921;unknown:1.67838)
-
TCP(2G:2.33482;3G:0.743109;WIFI:0.550208;unknown:1.20898)
-
RTT(2G:2.57478;3G:0.608047;WIFI:0.444332;unknown:1.30601)
-
Tran(2G:14.0374;3G:60.1967;WIFI:70.8728;unknown:36.3655)
-
-
DNS Prefetch
-
HTTP2/SPDY
-
TCP握手/TLS密钥协商
-
-
Cache
-
Browser Cache(一年)
-
AppCache(选择)
-
离线包(native下必须)
-
-
Web Storage
-
localStorage
-
sessionStorage
-
nativeStorage(native,>=4.6,大数据)
-
-
Cookie
-
Web DB
-
indexedDB(推荐)
-
Web SQL
-
-
合理缓存CGI数据(local/ajax)
-
首屏加载
- Server Render(React-Node)
-
按需加载(组件化)
-
lazyload(图片、组件)
-
延迟加载图片
-
滚动加载图片
-
-
Media Query
-
成功/失败率
-
图片
-
CDN文件
-
CGI
-
直播/录播播放
-
加载
-
断流
-
-
-
测速(2G/3G/4G/wifi、组件)
-
首屏展示速度(首屏渲染)
-
CGI测速
-
CDN文件测速
-
图片测速
-
直播/录播播放
-
加载
-
断流
-
-
-
版本覆盖
-
离线包更新率
- tdw:版本号、用户、环境等
-
离线包覆盖率
- monitor
-
-
错误日志
-
badjs
-
tryjs
-
-
performance
-
timing(ios 8不支持)
-
resouce timing(缓存/非缓存,手机暂不支持)
-
-
直播播放
-
视频加载流程监控(playing/paulse/timeupdate)
-
平均延时
-
失败率
-
-
卡顿缓冲监控(timeupdate)
-
卡顿缓冲时长
-
卡顿缓冲次数(短流率)
-
-
视频异常监控(onerror)
-
源文件不存在
-
取回过程被用户中止
-
下载时错误
-
解码时错误
-
不支持的音视频
-
其他cgi请求异常引起的错误等
-
-
-
录播
-
视频加载流程监控(playing/paulse/timeupdate)
-
平均延时
-
失败率
-
-
卡顿缓冲监控(timeupdate)
-
卡顿缓冲时长
-
卡顿缓冲次数(短流率)
-
-
视频异常监控(onerror)
-
源文件不存在
-
取回过程被用户中止
-
下载时错误
-
解码时错误
-
不支持的音视频
-
其他cgi请求异常引起的错误等
-
-
单位录播时长等待监控
-
录播播放时长
-
下载等待时长
-
-
-
keywords/description
-
合理减少pages数量
-
减少图片/flash/弹窗
-
外链权重不高
-
canonical/alternate
-
提交sitemap
-
HTML meta viewport(可以加速页面渲染)
-
优化DOM tree
-
减少html标签,避免不必要的嵌套
-
避免table
-
减少DOM深度
-
-
减少DOM渲染
-
VirtualDOM(React)
-
React-Native
-
-
合理使用requestAnimationFrame
-
尽量使用css3
-
合理使用Canvas代替多DOM tree(5个) css3
-
高频事件(touchmove、scroll) lazy化(debounce.js)
-
GUP渲染
-
大量的渲染(Canvas、WebGL、Video)
-
3D Transformed(transitions、3D transforms)
-
Animated css属性(filters, masks, blend modes, reflections, opacity)
-
position: fixed
-
content overlapping existing GPU-rendered bitmaps
-
-
避免重新设置图片大小
-
避免频繁的触发repaint/reflow
-
避免style标签
-
去掉expression
- 移除空的(多余的)选择器
-
合理使用Float
-
合理使用iconfont
-
值为0的属性不带单位(兼容性、压缩自动处理)
-
标准化浏览器前缀(构建)
-
减少font-size的申明(增加浏览器渲染计算)
-
异步css文件换成js文件(构建)
-
框架组件选择(zepto/react/vue/angular)
-
使用documentFragment(zepto已解决)
-
事件优化
-
事件代理
-
频繁事件优化
-
touchsatrt、touchend(tap)代替click
-
-
使用mqqapi(http://mqq.oa.com/)
-
id选择器
-
合理缓存对象(DOM、js对象、length)
-
慎用with
-
避免eval、Function
-
使用Join
-
图片大小
-
压缩工具
-
优图(tu.oa.com)
-
智图(zhitu.tencent.com)
-
grunt插件
-
-
图片格式
-
webP
-
sharpP
-
-
-
减少图片使用
-
css画图
-
svg画图
-
合理iconfont代替图片(最后的选择)
-
避免使用bmp图片
-
-
srcset + sizes(兼容性)
-
图片格式(webp > jpg > png(png8 > png24) > gif)
-
图片大小限制(10K,不超过30K)
-
图片尺寸限制