Spirit騰訊移動Web整體解決方案
Spirit 是移動 Web 開發(fā)規(guī)范,基于日常開發(fā)的沉淀,總結(jié)了字體、交互、性能等方面的最佳實踐,是移動Web開發(fā)的指導(dǎo)標(biāo)準(zhǔn)。
移動開發(fā)規(guī)范概述
以下規(guī)范建議,均是Alloyteam在日常開發(fā)過程中總結(jié)提煉出的經(jīng)驗,規(guī)范具備較好的項目實踐,強烈推薦使用
字體設(shè)置
使用無襯線字體
body {
font-family: "Helvetica Neue", Helvetica, STHeiTi, sans-serif;}
iOS 4.0+ 使用英文字體 Helvetica Neue,之前的iOS版本降級使用 Helvetica。中文字體設(shè)置為華文黑體STHeiTi。 需補充說明,華文黑體并不存在iOS的字體庫中(http://support.apple.com/kb/HT5484?viewlocale=en_US), 但系統(tǒng)會自動將華文黑體STHeiTi兼容命中系統(tǒng)默認(rèn)中文字體黑體-簡或黑體-繁
Heiti SC Light 黑體-簡 細(xì)體 Heiti SC Medium 黑體-簡 中黑 Heiti TC Light 黑體-繁 細(xì)體 Heiti TC Medium 黑體-繁 中黑
原生Android下中文字體與英文字體都選擇默認(rèn)的無襯線字體
4.0 之前版本英文字體原生 Android 使用的是 Droid Sans,中文字體原生 Android 會命中 Droid Sans Fallback 4.0 之后中英文字體都會使用原生 Android 新的 Roboto 字體 其他第三方 Android 系統(tǒng)也一致選擇默認(rèn)的無襯線字體
基礎(chǔ)交互
設(shè)置全局的CSS樣式,避免圖中的長按彈出菜單與選中文本的行為
a, img {
-webkit-touch-callout: none; /* 禁止長按鏈接與圖片彈出菜單 */}html, body {
-webkit-user-select: none; /* 禁止選中文本(如無文本選中需求,此為必選項) */
user-select: none;}
移動性能
要考慮Android低端機與2G網(wǎng)絡(luò)場景下性能 注意!
發(fā)布前必要檢查項
所有圖片必須有進行過壓縮
考慮適度的有損壓縮,如轉(zhuǎn)化為80%質(zhì)量的jpg圖片
考慮把大圖切成多張小圖,常見在banner圖過大的場景
加載性能優(yōu)化, 達(dá)到打開足夠快
數(shù)據(jù)離線化,考慮將數(shù)據(jù)緩存在 localStorage
初始請求資源數(shù)
< 4注意!圖片使用CSS Sprites 或 DATAURI
外鏈 CSS 中避免 @import 引入
考慮內(nèi)嵌小型的靜態(tài)資源內(nèi)容
初始請求資源gzip后總體積
< 50kb靜態(tài)資源(HTML/CSS/JS/IMAGE)是否優(yōu)化壓縮?
避免打包大型類庫
確保接入層已開啟Gzip壓縮
盡量使用CSS3代替圖片
初始首屏之外的圖片資源需延遲加載 注意!
單頁面應(yīng)用(SPA)考慮延遲加載非首屏業(yè)務(wù)模塊
運行性能優(yōu)化, 達(dá)到操作足夠流暢
避免 iOS 300+ms 點擊延時問題 注意!
緩存 DOM 選擇與計算
避免觸發(fā)頁面重繪的操作
Debounce連續(xù)觸發(fā)的事件(scroll/resize),避免高頻繁觸發(fā)執(zhí)行
盡可能使用事件代理,避免批量綁定事件
使用CSS3動畫代替JS動畫
避免在低端機上使用大量CSS3漸變陰影效果,可考慮降級效果來提升流暢度
HTML結(jié)構(gòu)層級保持足夠簡單,推薦不超過 5 個層級
盡能少的使用CSS高級選擇器與通配選擇器
Keep it simple
在線性能檢測評定工具使用指南
訪問 Google PageSpeed 在線評定網(wǎng)站
在地址欄輸入目標(biāo)URL地址,點擊分析按鈕開始檢測
按 PageSpeed 分析出的建議進行優(yōu)化,優(yōu)先解決紅色類別的問題
關(guān)于 Spirit:
Spirit(勇氣號),美國航天局NASA派往Mars(火星)的第一艘探測器。
移動Web開發(fā)是一塊新的領(lǐng)域,甚至有很多坑,這一點與人類從未踏上的Mars(火星)相似。為了避免開發(fā)者重復(fù)遇到相同的問題,我們創(chuàng)建了Mars項目(view on Github),收集與歸納移動Web開發(fā)中常見的問題。
Spirit正是為了Mars而生,Mars項目中歸納的問題,會放到Spirit中解決,并沉淀到開發(fā)工具(JM與JMUI)以及開發(fā)規(guī)范中,真正建立移動Web開發(fā)的集成解決方案。
