最佳開發(fā)實(shí)踐
SPA設(shè)計(jì)
建議使用SPA(Single Page Application,單頁(yè)應(yīng)用)設(shè)計(jì)來開發(fā)你的App,SPA更適合復(fù)雜的客戶端程序,一來方便應(yīng)用的組織和管理,其次也防止資源的重復(fù)加載,這一點(diǎn)對(duì)于cordova來說是特別友好的,因?yàn)閏ordova插件提供的原生api需要在deviceready事件之后才可以調(diào)用,就意味著如果打開新頁(yè)面,就必須等待資源加載完畢deviceready之后才能使用插件。這造成的兩個(gè)弊端,一個(gè)是工程越后期越難以維護(hù),另一個(gè)就是性能問題了。
這邊推薦一些構(gòu)建SPA應(yīng)用的框架和庫(kù):
性能方面的考慮
可以從以下幾個(gè)方面去改善app的性能
點(diǎn)擊與觸摸
使用touch事件會(huì)比使用click事件來說好的多,因?yàn)槭褂胏lick事件會(huì)有300ms的延遲,可能造成UI卡頓。所以考慮使用touchstar或者touchend來代替click,但是touch事件在非webkit的內(nèi)核的瀏覽器上是不支持的。關(guān)于各瀏覽器支持的事件和屬性可以查閱CanIUse這個(gè)網(wǎng)站。
CSS轉(zhuǎn)換和DOM操作
使用硬件加速的CSS轉(zhuǎn)換器來創(chuàng)建動(dòng)畫而不是js。
緩存
盡量將數(shù)據(jù)緩存到本地。
識(shí)別和處理離線狀態(tài)
對(duì)于離線狀態(tài)應(yīng)該有一個(gè)智能的處理,確保你的應(yīng)用在離線狀態(tài)下還是有一個(gè)較好的表現(xiàn),不至于長(zhǎng)時(shí)間無響應(yīng)或者崩潰。cordova已經(jīng)提供有獲取和監(jiān)聽網(wǎng)絡(luò)狀態(tài)的插件。