五個非常重要的移動Web內容適應設計理念

轉載自http://kb.cnblogs.com/page/137951/

英文原文:Mobile web content adaptation techniques

  譯者:趙建光

  如果你要構建移動網站,那麼本文可以幫你選擇合適的技術方案。本文並沒有具體描述如何去開發,只是介紹應該如何選擇正確的方法。在開始之前我們有必要明確一下這次實踐的目標。一般來說,想要構建網站的人可分爲兩大類:

  • 改造現有的網站,使其可以通過移動設備訪問;

  • 從頭開始構建全新的移動網站。

  這兩種目標是截然不同的,所以相應的技術方法也不同。前者的目標可以歸結爲:構建一個無縫縮放的網站。這樣的網站可以在不同尺寸的屏幕上正常顯示,而網站原有的結構、導航等則保持不變;後者的目標是構建一個全新的移動網站,以滿足移動用戶的需求(無論用戶是否處於運動狀態),這需要不同的視圖設置和交互設計。

  爲了區分現有的不同技術,本文使用了術語:“無縫縮放”和“內容自適應”。前者的意思是當現有的網站面向不同分辨率的屏幕時具有更大的靈活性和適應性;後者的意思是爲移動用戶量身定做。

  內容自適應技術的演變

  21世紀的頭 10 年裏,移動 Web 和桌面 Web 之間的區別還是很明顯的。當時只有一種技術可以實現不同設備之間的內容適應——即在服務器端進行內容適應。這就意味着服務器要對設備進行識別以切換內容保證其正確顯示。

  實際上,服務器端的內容適應技術很重要。如果沒有此技術,Web 上的內容將無法在設備上正確顯示。然而,在近 5 年情況變得更加複雜了。各種手機、平板電腦的出現使得移動瀏覽器與桌面瀏覽器之間的功能差異越來越小了。即使是最普通的功能手機也內嵌了功能豐富的瀏覽器。這就導致了三種結果:

  • 移動設備和桌面設備之間將不再有明顯區別。

  • 既然這麼多的設備都具有了功能強大且支持 JavaScript 的瀏覽器,也就有越來越多的新技術爲這些新設備提供內容適應服務。

  • 有些人質疑內容適應技術的必要性,理由是智能手機幾乎可以顯示所有網站的內容。

  本文旨在介紹諸多內容自適應技術,說明各技術的優缺點,以供參考

  下表列出了當今的主流技術:

  此表可能存在爭議,因爲,爲了簡潔起見,一些複雜的及細微的特徵在表中沒有表現出來。

  1、響應式設計

  響應式設計這個術語之所以如此流行是因爲 Ethan Marcotte 於 2010 年 5 月份在超具影響力的網站A List Apart 上發表的一篇文章及其 2011 年發表的書籍《Responsive Web Design》中都極力推廣該術語。Ethan 介紹了一系列的設計原則和技術,能夠保證網站在任何情況下都可以在移動設備上運行。實際上,流暢的設計一直是資深 Web 開發人員的追求目標,但是 Ethan 所介紹的是一套具體的技術,大多數 Web 開發者都可以在不使用其它新工具的情況下輕鬆實現這些技術,這就是該解決方案的誘人之處。

  上述的響應式設計是基於以下三種技術的:

  • 流體網格——確保底層頁面的網格可以很好地適應於各種尺寸的屏幕。

  • 響應式圖像——圖像在可變網格中可以正確顯示。

  • CSS media queries——所使用的 CSS 樣式可適用於不同分辨率、不同類型的設備。

  這些技術使得一個 HTML 頁面可以運行於不同設備,達到我們所期望的結果:採用這種技術所構建的網站可以很好地支持舊版本的瀏覽器,可以在所有桌面瀏覽器及大多數智能手機上運行。Media Queries 上有很多這樣的例子。(注:Ethan 那本書的發行者 Jeffrey Zeldman 後來指出,響應式設計不應僅僅侷限於 Ethan 所介紹的技術,而應該包含所有可以實現這一目標的方法。)

  響應式設計這一術語只是該技術的標籤。該技術包含了一整套的設計原則,以實現無縫縮放功能。可是,響應式設計容易與移動 Web 相混淆,導致開發者產生錯覺,他們會以爲只要使用了響應式設計的網站就是對移動用戶友好的網站,就完成了移動網站的開發。當然了,做一個反應速度快的網站是好事,但缺少一個充分發揮移動設備本身功能的解決方案。

  說實話,Ethan 並不提倡用這種方法來構建移動網站,他有一個很明智的建議:要根據具體項目來選擇合適的方法。他在書中指出:“最重要的是,Web 響應式設計不是用來代替移動網站的。響應式設計只是一個設計理念,一個前端的開發策略。既然是開發策略,這就意味着要根據具體項目來做出正確的評估。

  作爲一種實現移動網站的方法,響應式設計存在以下三個問題:

  • 只可以做到無縫縮放,而沒有實現內容自適應。從移動領域的角度來看,這種技術效率低下。(即使圖片在某移動設備上不能全屏查看或者根本無法顯示,也需要將整個圖片下載下來。)

  • 由於響應式設計理念中,HMTL 代碼是要傳遞到所有設備中的(無論大小),這就使得它不能很好地支持低端設備。波士頓環球報網站上大肆宣揚:“所謂的響應式設計傑作,在主流手機(如:Motorola RAZR、Nokia 6100)上卻不能很好地運行,甚至根本無法運行。”

  • 不能很好地處理實時數據,所以用戶體驗不夠好。

  響應式設計雖然可以實現無縫縮放,但是所支持的用例很有限,並不是一個很好的移動 Web 解決方案。

  2、Mobile-First 響應式設計

  自從 Ethan 的文章及著作發表以來,許多人指出,如果將響應式設計反過來用可能會更合理:如果你設計的網頁風格默認就是對移動用戶友好的,那麼一些響應式設計問題也就不存在了。特別地,避免下載不必要的大圖片問題就可以由該方法來解決。目前,這種技術的最佳實踐是:首先爲所有設備提供合適的圖片,然後用這些圖片來代替大圖片。來自 The Filament Group 的 Scott Jehl 已經做到了這點。

  Mobile-First 設計理念的另一個優點是:該設計理念可以作爲一個楔子,使得設計人員找到了一個充分的理由來清除多年來在桌面網站上積累下來的不必要的混亂。因爲按照 Mobile-First 的設計理念,這些混亂是必須要被剔除的。

  Mobile-First 響應式設計是對原有技術的重大革新,但也存在以下問題:

  • 只實現了無縫縮放,而沒有實現內容自適應。

  • 桌面網站需要從頭開始重新設計。也許你認爲這反倒是件好事。

  總之,如果你的目標是構建移動網站,Mobile-First 響應式設計是唯一實用的響應式設計理念,因爲從低端設備到桌面瀏覽器都可以使用該方案。

  3、漸進增強(PE)

  漸進增強(PE)是一個新近流行的有關內容適應方面的術語。最初是在約 10 年前由 Steven Champeon 和 Nick Finck 在他們的文章《Inclusive Web Design Future》中提出來的,該文章發表於SXSW。漸進增強的核心思想是:在單一的網頁上實現 JavaScript 增強邏輯,使其能夠服務於所有類型的設備。如果設備過於簡陋,則 JavaScript 可能得不到運行或報錯,因此用戶體驗會很差;如果是智能設備或桌面瀏覽器,則 JavaScript 會逐漸向頁面增加新的功能,充分發揮設備的硬件功能。理論上講,分層是沒有上限的,可以逐漸從功能手機瀏覽器漸漸過度到臺式電腦瀏覽器。

  PE 的誘人之處是很明顯的:它可以滿足所有類型的設備(包括低端設備),因爲它是故障安全的解決方案;高端設備的功能又不會因爲這個“最低限度共同點”而受到限制。剛剛發佈的 jQuery Mobile 庫就用到了 PE 解決方案,實際上,PE 將內容適應邏輯從服務器端移到了客戶端。這種方案存在兩個問題:

  • 該技術的核心“漸進增強”的執行是需要一定時間的,所需時間的長短主要取決於設備的硬件性能,當然也可能與網速有關。舉個例子,某些型號的黑莓手機理論上是支持 JavaScript 的,但實際上運行速度太慢以至於沒有什麼實際用途。

  • 和以往的技術一樣,該技術中多個用例共用同一個基本的 HTML 文件,這在功能上似乎很受限。

  實際上,PE 技術的最佳應用是消除移動設備之間的差異,而不是作爲一個綜合的內容適應解決方案。

  4、服務器端內容適應技術

  服務器端內容適應技術早在 12 年前移動 Web 剛剛出現時就開始使用了。該技術依賴於設備檢測庫或依賴於安裝在 Web 服務器(或遠程 Web 服務)上的數據庫,檢測訪問網站的設備並返回設備的性能信息。服務器端可以根據這些信息對頁面進行微調,使之很好的適應設備的性能。由於服務端內容適應技術中包含了設備檢測技術,所以有時也被稱爲“瀏覽器嗅探”。儘管也有不少反對者,但瀏覽器嗅探確實很穩定很精準,據統計,該解決方案檢測設備的精準度達到了 99.5% 以上。

  該技術的有效性不言自明:它仍然是迄今爲止最常用的內容適應技術,幾乎所有重視移動用戶體驗的知名互聯網公司都在使用該技術,包括 Google、Facebook、Amazon、Youtube、Ebay 以及 Yahoo。你很難找到一個沒使用服務器端內容適應技術而又取得成功的移動網站。

  然而,服務器端內容適應技術也不是沒有缺點。其缺點主要有以下兩點:

  • 所用到的設備檢測技術需要 Web 開發者不斷進行更新,並且大多數設備檢測技術都是商業化的。

  • 不能很好地使用瀏覽器的實時數據(例如,GPS 定位或者設備當前的方向)以幫助 Web 開發者更好地服務於用戶。

  目前,WURFL 和 DeviceAtlas 是設備檢測方面的領軍產品,這兩款產品都是商業化的。

  5、混合方法

  最後要介紹的技術是混合方法,該方法把服務器端內容適應技術與漸進增強技術結合在了一起。這種技術的工作原理是,當服務器收到客戶端的頁面請求時,服務器端首先向客戶端提交一個基於服務器端內容適應原則的初始頁面,然後由客戶端的 JavaScript 來捕獲設備的性能信息並返回給服務器端,服務器端根據所捕獲的信息對發向該設備的後續頁面進行微調,使頁面更好地適應該設備。

  該技術首先是由 Bryan Rieger 和 Stephanie Rieger 發佈的,他們在 yiibu.com 上很詳細地記錄了他們探索各種weixinqunkong8.com內容適應技術的曲折而漫長的道路。有趣的是,他們在嘗試該技術之前幾乎已經嘗試過了所有上文已經介紹過的技術。

  他們使用了設備檢測技術和瀏覽器屬性“隱性數據庫”,還使用了 modernizr-like JavaScript 腳本。在此不詳述細節,建議大家看看他們的介紹:“適應:爲什麼響應式設計始於服務器端?”

  這種混合方法對用戶端和服務器端來說都是最合適的方式——既可以利用高速的服務器端內容適應,又可以利用來源於設備自身的屬性來調整頁面。用戶可以得到一個初始的適合當前設備的頁面,又不會有什麼性能開銷,並且後續頁面會根據此頁面自動進行調整。但是,這種方法也存在兩個缺點:

  • 實現起來相對複雜,這點 Riegers 兩位也欣然承認。複雜性源於以下兩個因素:複雜性源於以下兩個因素:1)需要建立一個數據庫以保存瀏覽器的屬性;2)需要寫 JavaScript 代碼,以實現從瀏覽器中提取屬性並存入數據庫。

  • 首次訪問服務器時,在用戶得到有用信息之前,需要一個從瀏覽器到服務器之間的往返時間的延遲開銷。在後續請求中可以使用 cookies 來消除該延遲。

  總結:

  所有可用的技術都介紹過了,接下來你會如何選擇呢?當然,要視具體情況而定。筆者認爲,任何以“單個 HTML 文檔來滿足所有設備”爲前提的技術,本是就是有缺陷的,就如同:大多數的電視內容不是多次播放的電影,大多數的網站也不是紙質報紙的完美複製品。用戶對某些類型的網站(例如博客)的交互需求是有限的,這樣單一的一套交互方案是可以同時滿足桌面與移動用戶的。但是,在更一般的情況下,如果也讓桌面與移動用戶共用同一套方案,最好的結果是:功能嚴重受限; 最壞的結果是:根本無法運行。

  正如一位 CTO 所說:“客戶端功能檢測如何將一個航空公司的介紹性網站轉變成爲移動電子登機服務呢?漸進增強理念是以‘所有用戶的需求都相同,只是界面佈局不同’的假設爲前提的。”

  如果航空公司所構建的移動網站和桌面網站採用相同的基本模板,這樣真的可行嗎?如果你真的想提供一流的移動用戶體驗,那麼響應式設計和漸進增強將得不到很好的體現。你在 Alexa 網站上快速看一眼就會知道,想要提供優質的移動用戶體驗需要對 HTML 進行量身定做,而不是簡單地調整像素和 div 元素。

  總之,如果你的網站只是運行在一些高端移動設備上,並且你不會特意去照顧某些移動 Web 用戶,那麼你可以採用響應式設計方案,或者 Mobile-First 響應式設計方案。如果你的網站元素不太複雜,那麼這兩種方案會很奏效。

  如果你想提供一個全新的移動用戶體驗設計或者你想滿足所有的移動設備,那麼你只能使用服務器端內容適應方案或混合方法。這也是所有知名互聯網公司都採用這種方案的原因。

  上述觀點都是基於對新媒體的信仰:移動 Web 是一種新媒體,絕不是舊媒體的縮略版本;是一種功能強大的媒體,而不是功能弱小的媒體;是一種全新的 Web,而不是合成的雜牌 Web。只有這樣看待和使用該新媒體,它才能得到最合理、最成功的應用。

  參考文章:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章