移動網際網路已經在全球得到了廣泛的應用。到2009年,有50%的新增的網際網路訪問都是來自手機裝置(eMarket,2008和2009)。來自Google的內部資料顯示,隨著移動瀏覽器的提升,使用者的瀏覽習慣也在逐步改進。
移動瀏覽器上的頁面佈局與桌面瀏覽器有著顯著的差異,所以,想要在移動裝置上開發出優秀的瀏覽器,有些注意事項是需要開發者事先了解的。對於如何在移動裝置上開發出高效能、體驗良好的web應用,Google網路管理員Jeremy Weinstein給出了幾點技術和非技術方面的建議(譯者注:原文來自Google Code,可以認為是Google官方的開發指南)。
1. 讓你的網頁和Apps更適合移動裝置訪問
1.1 在桌面版應用上提供一個顯著的移動版入口
如果你有一個包含大量影像的網站,當你為它開發了一個移動版本,你是否還希望移動使用者繼續使用原來的桌面版?確保讓使用者知道你的網站還有一個移動版本存在。
1.2 移動URL要遵循習慣用法,並推廣之
雖然沒有規定你必須把原來桌面服務的移動版的地址設定成什麼樣,但是這裡有些地址設計的慣例可以參 考:m.yoursite.com,mobile.yoursite.com 或是yoursite.com/mobile。選擇一個簡單的移動URL,並且將它貼在原來的桌面網站上。
1.3 設計一個與移動裝置相適應的使用者介面
儘量避免讓使用者輸入過多的資訊。提供更多的點選功能。將URL設計得儘量短一點,方便使用者輸入。選取合適的UI元件和功 能,使得你的應用在小螢幕上能夠方便地顯示和操作。多考慮一下使用者的訪問情景——或許不是舒服地坐在椅子上,所以儘量讓使用者能夠快速找到想要的資訊。確保 你的資訊足夠的清晰簡潔。
Gmail提供了一個移動版本,更加符合移動裝置的訪問方式
1.4 讓你的網站適合各種移動瀏覽器的訪問
目前存在著全功能(Mobile Safari, Android等),半功能(BlackBerry),以及低功能(舊款的翻蓋手機)瀏覽器。想想如何讓你的移動web頁面既能在150×128畫素的屏 幕上顯示,又能在640×480畫素的螢幕上顯示。不同國家的移動瀏覽器標準也有所不同。如果你的使用者來自不同的國家,確保你的設計能夠符合這些國家的設 備標準。
2. 減少請求和資料的傳輸
為了減少延遲現象的發生,你的網站或應用程式應該儘量避免向伺服器傳送請求。在TCP和socket機制中,一次大資料的請求傳輸比多次小資料的請求傳輸速度要快。這一點在移動開發中顯得尤為重要。
使用CSS Sprite處理你的圖片,或者將你的圖片轉換為data URI scheme。可以參考Google Search搜尋結果頁面上的logo圖示,它就用到了CSS sprite。Google的一些服務(例如Wave)通過使用data URI scheme將靜態的請求固化,用於在web頁面中內聯靜態資料。(data URI技術無法在舊版本的瀏覽器上使用,它是專門為iPhone,Android和其他最新的移動web瀏覽器上的網頁和應用程式設計的。)
如果你的圖片裡面包含base64的字串,那麼在壓縮的時候可能會丟失部分資料(這種格式的圖片在傳輸時必須使用gzip壓縮)。但即使這樣,也儘量不要建立一個新的連線或是傳送一個新的HTTP請求。
如果你的應用包含了一個CSS檔案,那麼它還需要匯入一些其他的資源;如果包含的是一個JavaScript檔案,那麼也需要下載一下額外的程式碼,將你的網頁需要下載的資訊全部放到一個檔案中。將你的請求放到一個檔案中將提升你的應用的速度。
2.1 簡化程式碼
程式碼越少,傳輸的資料越小,你的網頁開啟得越快。減少傳輸的資料量不如減少通訊次數有效,對於高延遲的移動連線,每減少一個bit都將有助於提升你的應用載入速度。可以看看一篇關於HTML optional tags and CSS optimization的文章。
2.2 避免重定向
有時Web頁面和Web服務會對某個請求多次重定向。如果你的服務需要對請求重定向,那麼儘量在伺服器端處理,而不是在客戶端,儘可能減少客戶端的網路互動次數。
2.3 預先考慮並拉長內容下載流程
只有在需要的時候才傳輸資料,可能的話儘可能提前下載資料。不要下載一些使用者根本看不到的圖片。在移動裝置上Time-to-text是非常重要的。如果你的裝置在顯示一組圖片,可以考慮一起下載它前後的圖片以提升UI的速度,但是不要下載一些相隔太遠的圖片。
可以看看Page Speed中的Web Performance Best Practices介紹。
3. 充分利用HTML的新功能
3.1 在移動應用中使用Appilcation Cache
HTML5瀏覽器(Mobile Safari, Android)通過使用Application Cache能夠減少頁面啟動時間,並且允許使用者離線訪問。
3.2 如果可能的話,儘量用CSS3替代圖片
支援CSS3的HTML5瀏覽器能使用各種豐富的屬性,如圓角、漸變色、陰影、文字轉換、畫布等等。使用CSS替代圖片來裝飾你的頁面能夠減少資料傳輸的開銷。
Google的移動Apps上已經使用了HTML5提供的新的APIs。例如Mobile Gmail就用到了Application Cache。Mobile Google Search則使用了HTML5 Geolocation API 來展示搜尋到的定位結果。Google Maps for Mobile以及Mobile Gmai都使用了canvas 標誌來避免圖片的傳輸。
檢視有關HTML5和移動web App的Google Code部落格。
3.3 將最低配置裝置上執行環境考慮在內
如果你想讓更多的使用者訪問你的網頁或是app,那麼你必須確保你的應用能夠在各種裝置上相容。簡潔的程式碼不僅使得你的應用響應更快,通常還會使得應用具有更好的相容性。
一些忠告:
- 即使是iPhone或Android這樣的瀏覽器現在也不支援Flash,不要在移動網站中使用Flash。
- 許多BlackBerry手機預設禁用CSS和JavaScript,不要指望使用者懂得在選單中開啟這些功能。
- 在效能較差的移動裝置上執行JavaScript的代價太高。除了優化網路處理,還應該儘量使客戶端的程式碼精煉高效,要儘量減少應用對記憶體的佔用。
4. 測試測試,再測試
如果你是一個web開發者,那麼你應該對跨桌面web瀏覽器開發的痛苦深有體會了。跨瀏覽器測試對於移動裝置開發是非常重要的一項工作。
為了使得應用適應各種移動裝置的螢幕,移動瀏覽器需要靈活地調整文字、影像以及CSS的顯示方式。
在你手掌上訪問移動web網頁或是使用移動app的體驗與在PC機上的體驗是非常不同的。不要用你在PC上的互動體驗代替你在移動裝置上的體驗測試。
測試資源:
- Android Emulator
- BlackBerry Device Simulators
- iPhone
- Opera Mini Simulator
- Palm Pre
- Windows Mobile
- User Agent Switcher extension for Firefox. 更換桌面上的使用者代理,檢測在更換代理後網頁能否繼續正常顯示。
- Page Speed Firefox/Firebug Addon.評估網頁的效能並給出改善建議。
其他資料
作者:Jeremy Weinstein, Google 網站管理員 英文原文:Make the mobile web faster