Spirit 介绍
Spirit 是移动 Web 开发规范 ,基于日常开发的沉淀,总结了字体、交互、性能等方面的最佳实践,是移动Web开发的指导标准。
移动开发规范概述
以下规范建议,均是Alloyteam在日常开发过程中总结提炼出的经验,规范具备较好的项目实践,强烈推荐使用
字体设置
使用无衬线字体
body { font-family: "Helvetica Neue", Helvetica, STHeiTi, sans-serif;}
iOS 4.0+ 使用英文字体 Helvetica Neue,之前的iOS版本降级使用 Helvetica。中文字体设置为华文黑体STHeiTi。
需补充说明,华文黑体并不存在iOS的字体库中(http://support.apple.com/kb/HT5484?viewlocale=en_US),
但系统会自动将华文黑体STHeiTi兼容命中系统默认中文字体黑体-简或黑体-繁
Heiti SC Light 黑体-简 细体 Heiti SC Medium 黑体-简 中黑 Heiti TC Light 黑体-繁 细体 Heiti TC Medium 黑体-繁 中黑
原生Android下中文字体与英文字体都选择默认的无衬线字体
4.0 之前版本英文字体原生 Android 使用的是 Droid Sans,中文字体原生 Android 会命中 Droid Sans Fallback 4.0 之后中英文字体都会使用原生 Android 新的 Roboto 字体 其他第三方 Android 系统也一致选择默认的无衬线字体
基础交互
设置全局的CSS样式,避免图中的长按弹出菜单与选中文本的行为
a, img { -webkit-touch-callout: none; /* 禁止长按链接与图片弹出菜单 */}html, body { -webkit-user-select: none; /* 禁止选中文本(如无文本选中需求,此为必选项) */ user-select: none;}
移动性能
发布前必要检查项
加载性能优化, 达到打开足够快
-
数据离线化,考虑将数据缓存在 localStorage
-
初始请求资源数 < 4 注意!
-
图片使用CSS Sprites 或 DATAURI
-
外链 CSS 中避免 @import 引入
-
考虑内嵌小型的静态资源内容
-
初始请求资源gzip后总体积 < 50kb
-
静态资源(HTML/CSS/JS/IMAGE)是否优化压缩?
-
避免打包大型类库
-
确保接入层已开启Gzip压缩
-
尽量使用CSS3代替图片
-
初始首屏之外的图片资源需延迟加载 注意!
-
单页面应用(SPA)考虑延迟加载非首屏业务模块
运行性能优化, 达到操作足够流畅
-
避免 iOS 300+ms 点击延时问题 注意!
-
缓存 DOM 选择与计算
-
避免触发页面重绘的操作
-
Debounce连续触发的事件(scroll/resize),避免高频繁触发执行
-
尽可能使用事件代理,避免批量绑定事件
-
使用CSS3动画代替JS动画
-
HTML结构层级保持足够简单,推荐不超过 5 个层级
-
尽能少的使用CSS高级选择器与通配选择器
-
Keep it simple
-
访问 Google PageSpeed 在线评定网站
-
在地址栏输入目标URL地址,点击分析按钮开始检测
-
按 PageSpeed 分析出的建议进行优化,优先解决红色类别的问题
关于 Spirit:
Spirit(勇气号),美国航天局NASA派往Mars(火星)的第一艘探测器。
移动Web开发是一块新的领域,甚至有很多坑,这一点与人类从未踏上的Mars(火星)相似。为了避免开发者重复遇到相同的问题,我们创建了Mars项目(view
on Github),收集与归纳移动Web开发中常见的问题。
Spirit正是为了Mars而生,Mars项目中归纳的问题,会放到Spirit中解决,并沉淀到开发工具(JM与JMUI)以及开发规范中,真正建立移动Web开发的集成解决方案。
Spirit 官网
http://alloyteam.github.io/Spirit/modules/Standard/index.html