部署移動網站策略


第二部分 – 第05章

Desktop Tablet

當開發的網站同時應用於移動和桌面屏幕時,必須選擇一個網站策略。三種最普遍的移動網站策略為:

  • 響應式設計
  • 獨立移動網站
  • 動態提供內容

簡言之,這三種移動網站策略有如下不同:

  • 網站將使用的URL集的數量
  • 網站必須維護的HTML代碼集的數量
策略 一套URL 一套HTML代碼
響應式設計 Responsive Design
獨立移動網站 Separate Mobile Website
動態提供內容 Dynamic Serving

響應式設計

採用響應式網站設計的移動網站策略,意味著你的網站服務器總是向請求網站的網絡瀏覽器(多種設備)發送同樣的一套HTML代碼。網站CSS被用來根據特定設備的屏幕寬度改變網站頁面的渲染區域 。

Responsive Design

不論用戶通過桌面設備還是移動設備訪問你的網站,網站的URL總是保持不變。例如,當你的網站主頁在桌面屏幕上顯示時:

www.example.com - PC端

當你的網站主頁在移動屏幕上顯示時:

www.example.com - 移動端

配置Viewport

為了網站的響應式策略能有效運行,前提條件就是配置Viewport

<meta name="viewport" content="width=device-width, initial-scale=1">

示例

如下示例,兩個網站均使用了響應式設計,且網站頁面在移動和桌面設備上均能有效展現。

www.mobilewebsitebook.com
www.analyticsbook.org

優勢

  • 對今後來說,你將只需要維護一套網頁代碼。
  • 雖然對桌面和移動用戶而言,為一頁內容只提供一個單一的URL,但是網頁的佈局將根據屏幕寬度(例如移動或桌面屏幕)自動調整。

劣勢

  • 為了使網頁可以根據不同的屏幕寬度進行自動調整,你需要仔細設計CSS。
  • 移動用戶訪問站點時,也不得不下載針對桌面屏幕的完整大小的圖片和文件,同時也下載針對移動屏幕的大小縮減過的圖片和文件。隨著頁面加載時間增加而網站性能減弱,這一過程經常終止。

獨立移動網站

採用獨立移動網站策略,網站便針對移動和桌面網站使用兩套不同的URL。例如,一套URL是針對移動網站,而另一套URL針對桌面網站。

Separate Mobile Website

示例

例如,網站主頁的URL為:

www.example.com - PC端
m.example.com - 移動端

例如,一個展現特定城市(例如上海)酒店清單的頁面:

www.example.com/shanghai-hotels/ - PC端
m.example.com/shanghai-hotels/ - 移動端

例如,一個顯示某個特定酒店信息的頁面:

www.example.com/shanghai-hongqiao-number-one-hotel/ - PC端
m.example.com/shanghai-hongquao-number-one-hotel/ - 移動端

例如,一個包含指向所有其他頁面鏈接的網站地圖頁:

www.example.com/sitemap/ - PC端
m.example.com/sitemap/ - 移動端

例如,網站的論壇主頁:

www.example.com/forum/ - PC端
m.example.com/forum/ - 移動端

搜索引擎代碼

根據Google的規則,通過增加代碼,可以允許Google的自然搜索算法更好地理解獨立移動網站的結構。比如,你應該在主頁的桌面版本中包含如下代碼:

<link rel="alternate" media="only screen and (max-width: 640px)" href="http://m.example.com/"> ;

在你的主頁的移動版本中應該包括如下代碼:

<link rel="canonical" href="http://www.example.com/">

你應該添加相似的代碼以匹配網站上所有頁面的兩個版本。例如,在清單頁的桌面版本中,你應該添加如下代碼:

<link rel="alternate" media="only screen and (max-width: 640px)" href="http://m.example.com/shanghai-hotels /">

在清單頁的移動版本中,你應該添加如下代碼:

<link rel="canonical" href="http://www.example.com/shanghai-hotels/">

優勢

  • 每個網站都有一套獨特的HTML代碼和為設備優化了的(為用戶體驗)CSS。
  • 當你有兩套獨立的代碼時,你可以用特定設備的優化代碼(不用對其他版本產生負面影響)來提升網站性能(例如加載速度)。

劣勢

  • 預算。由於總是需要維護網站的兩套代碼,將對開發和維護工作提出更多的要求。
  • 市場營銷。針對移動用戶,你必須使用一套獨立的移動URL進行市場營銷或推廣。

動態提供內容

依賴動態提供內容,你的網站通過單一的一套URL,根據請求網頁的用戶代理,對移動端用戶和桌面端用戶渲染不同的HTML代碼。

Dynamic Serving

不論用戶是通過桌面設備還是通過移動設備訪問你的網站,網站的URL總是保持一致的。例如,當你的網站主頁在桌面端屏幕上顯示時:

www.example.com - PC端

當你的網站主頁在移動端屏幕上顯示時:

www.example.com - 移動端

Vary HTTP Header

動態提供內容運行的首要條件就是配置Vary HTTP Header. Vary HTTP Header是網站服務器響應請求的一部分,例如:

GET /page-1 HTTP/1.1
Host: www.example.com
(...rest of HTTP request headers...)

HTTP/1.1 200 OK
Content-Type: text/html
Vary: User-Agent
Content-Length: 5710
(... rest of HTTP response headers...)

Vary HTTP Header通知網絡瀏覽器響應的內容將根據請求網頁的用戶代理進行改變。

優勢

  • 針對網站的移動版本和桌面版本,僅需要維護單一的一套URL。
  • 有兩套獨立的代碼,通過為特定設備優化的代碼(不會給其他版本帶來負面影響)便可提升網站性能(例如速度)
  • 訪問網站的移動用戶僅需要下載針對移動屏幕/設備優化過的圖片和文件,它們的大小已經被縮減。

劣勢

  • 你必須維護兩套獨立的HTML代碼,CSS,JavaScript等,這些內容都是針對特定設備的。
  • 為使動態提供內容能正常運行,必須配置Vary HTTP header。該配置項對於操作系統(或者環境)而言是獨立的(例如IIS, Apache, Nginx等)。為了維護Vary HTTP配置,你必須在所有操作系統上更新Vary HTTP header信息。


移動網站性能技術白皮書在2017年3月正式出版。

英文版:Implement Mobile Website Strategies – 簡體中文版:部署移動網站策略







移動網站性能技術白皮書上的內容按下列許可協議發布: CC Attribution-Noncommercial 4.0 International

Gordon Choi's Mobile Website Book