接觸Mobile WEB前端開發(fā)將近一年時間了,在這不算短的時間里,通過吸取圓心、沉魚等前輩們的經(jīng)驗以及不斷的摸索和實戰(zhàn),總結(jié)出一套自己的Mobile WEB“研發(fā)流程”。為什么叫“研發(fā)”流程而不是“開發(fā)”流程,在下文中會進行解釋。首先我們來看一下“研發(fā)”的流程圖:
1. 為什么要叫“研發(fā)”流程?
我們知道,對于傳統(tǒng)的WEB前端開發(fā),一般情況下我們需要關(guān)注的操作系統(tǒng)/瀏覽器情況如下:
操作系統(tǒng):Windows/MacOS
瀏覽器:IE(6、7、8)/Firefox/Safari/Opera/Chrome
這些操作系統(tǒng)和瀏覽器的基本狀況如下:
市場占有率和使用分布情況相對穩(wěn)定
比較開放,廠商對開發(fā)人員的支持較好
不同操作系統(tǒng)下,瀏覽器渲染情況差別不大
經(jīng)過前端開發(fā)者們的長期研究和總結(jié),它們的渲染特性、標(biāo)準(zhǔn)支持情況基本家喻戶曉
而在Mobile WEB前端開發(fā)領(lǐng)域,狀況則相當(dāng)?shù)幕靵y,我們需要關(guān)注的東西則復(fù)雜多了:
操作系統(tǒng)(平臺):Symbian(S40/S60/S80/S90)/iPhoneOS/Android/WM(WinCE)/MTK/Linux/BB/PalmOS/Maemo(Meego)…
內(nèi)置瀏覽器:Symbian/Chrome Lite/iPhone Safari/MTK/IE Mobile/BB Browser/Opera(OEM)/…
第三方瀏覽器:Opera Mini/Opera Mobile/Skyfire/NetFront/UCWEB/QQ瀏覽器/Go瀏覽器/…
這些操作系統(tǒng)和瀏覽器的基本狀況則是:
市場占有率和使用分部情況不穩(wěn)定,新機型、新瀏覽器會很容易占領(lǐng)市場
大部分內(nèi)置瀏覽器不夠開放,操作系統(tǒng)和瀏覽器廠商對開發(fā)人員的支持很不到位
不同的操作系統(tǒng)、不同的瀏覽器下,相同系統(tǒng)下的不同瀏覽器,相同瀏覽器在不同的操作系統(tǒng)下,甚至同一個系統(tǒng)或瀏覽器的不同版本,都可能會導(dǎo)致頁面效果產(chǎn)生很大的差異(很繞口,其實就是排列組合)
由于兼容性方面的研究非常稀少(尤其在國內(nèi)),加上操作系統(tǒng)和瀏覽器的封閉和日新月異的變化,我們對它們特性的掌握程度也是基本空白
經(jīng)過比較,我們可以很快發(fā)現(xiàn),想要讓我們的Mobile WEB在更多的客戶端上表現(xiàn)完美,我們需要大量的時間和精力去了解、去掌握各個操作系統(tǒng)、平臺、移動瀏覽器的特性,只有對它們有了一定程度的了解和掌握,我們才能更深一層的駕馭Mobile WEB兼容性開發(fā)。
因此,“研發(fā)”包含了“操作系統(tǒng)、瀏覽器研究”和“Mobile WEB開發(fā)”兩個部分。
2. 循序漸進的周期性研究
如前所述,我們想要對移動設(shè)備的操作系統(tǒng)和瀏覽器們進行研究,需要花費大量的時間和精力。羅馬不是一天建成的,胖子也不是一口吃出來的。我們需要一個循序漸進的過程,一個長期性的研究,經(jīng)過不斷地積累點滴經(jīng)驗,才能夠逐步了解這些特性。另外,移動設(shè)備更新頻繁,新機型和新瀏覽器日新月異,我們也需要階段性地跟進最新發(fā)展情況。因此,這就是需要周期性研究的原因:
需要大量的時間和精力
移動設(shè)備更新頻繁
在Mobile WEB前端開發(fā)只有一個的情況下,建議每隔半年進行一次系統(tǒng)的研究,為兼容性開發(fā)打下基礎(chǔ)。在此后的半年內(nèi),Mobile WEB頁面的前端開發(fā)都將基于此次研究結(jié)果,一般不需要再對頁面進行兼容性測試。對于兼容性測試,之前很多文章中提到過,下面也會再次提到。
3. 關(guān)于兼容性測試
兼容性測試,是WEB開發(fā)和Mobile WEB開發(fā)都必不可少的步驟。但是在流程上,后者跟前者卻有著很大的區(qū)別。
WEB前端開發(fā)是在頁面開發(fā)后做瀏覽器兼容性測試
而Mobile WEB前端開發(fā)卻是在頁面開發(fā)之前做瀏覽器兼容性測試
移動瀏覽器不像桌面瀏覽器那么輕松地查看做好的頁面效果,試想,如果跟WEB前端開發(fā)流程一樣的話,每做完一張Mobile WEB頁面,就要搞一大堆測試機進行測試查看對比效果,發(fā)現(xiàn)問題修改然后再測試,這會是件很荒唐的事情!
因此,我們就需要用兼容性測試的結(jié)果來主導(dǎo)前端開發(fā):
測試XHTML的每一個常用元素
測試CSS的每一個常用屬性
測試JavaScript的基本特性支持
測試其它與移動設(shè)備相關(guān)的點
在測試結(jié)果整理出來后,我們可以通過它,知道什么元素、什么屬性可以使用,什么避免使用,并在開發(fā)時遵守這些使用約定。