2017年2月8日 星期三

網頁升級為AMP行動超速化

google-amp-2

Google搜尋引擎已經支援新的AMP HTML加速技術(AMP:Accelarated Mobile Pages,行動裝置加速頁面),能將符合AMP標準的網頁在搜尋結果中以飛也的速度顯示。
AMP HTML標準簡單的說明就是以AMP JS程式庫以更快速的方式將網頁顯示在行動裝置上,而Google建置了AMP的快取,能預先將符合的網頁儲存,包含網頁的文字內容、圖片及JavaScript檔案,在使用者點擊連結開啟網頁時以幾乎『秒開』的速度開啟該網頁(HTTP2.0)。

Google官方說法

秒開Google網頁

在Google搜尋結果中,只要網頁連結前有“AMP”的閃電符號,那就代表Google已將該網頁的AMP版本預存在快取中,所以能將AMP網頁內容以更快速的方式呈現出來。
到此為止,您應該能意識到這個機制的重要性:
1. 只要製作符合AMP標準的網頁,就能達到行動裝置加速開啟的效果。
2. 在搜尋引擎結果中,能加速開啟內容,無非是加速了商機的到來。
趕緊著手改裝網頁吧!

標準的範本

符合AMP HTML標準的網頁,應符合下列的結構:

<!doctype html>
<html ⚡>
 <head>
   <meta charset="utf-8">
   <link rel="canonical" href="hello-world.html">
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
   <style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>
   <script async src="https://cdn.ampproject.org/v0.js"></script>
 </head>
 <body>Hello World!</body>
</html>

檢視升級HTML步驟

按照每個AMP元件的標準,自己動手作就能將網頁升級成快人一等的速度。

以 < !doctype html>作為開頭

這行是必要的,而且要放在網頁原始碼開頭。

<!doctype html>

< html>

html標籤要符合 < html ⚡> 標籤或 < html amp>格式,二者取其一即可。

<html amp='amp'>

緊接在< head>後要接這3行

檢查一下網頁原始碼,確實加入這3行。

<meta charset="utf-8">
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
<script async src="https://cdn.ampproject.org/v0.js"></script>

網址別名 Cononcial

網址別名(Cononcial URL)標籤也是必要條件之一,例如:http://mydomain.com.tw/post-meta-url.html是指向http://mydomain.com.tw/post-url.html,那麼就該加入這行:

<link expr:href='http://mydomain.com.tw/post-meta-url.html' rel='canonical'>

在< /head>結束之前加入的程式碼

在< /head>之前加入這段,如下:

<style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style>
<noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>

</head>

置換img標籤

所有圖片html標籤都要改成< amp-img>, 例如:

<amp-img src="AmpImage.jpg" alt="amp-img" height="500" width="500"></amp-img>

檢測方法

Google Chrome 瀏覽器

在網址後加上“#development=1“, 例如:http://mydomain.com.tw#development=1,接著再開啟Chrome的開發者工具(Ctrl+Shil+I)即可檢測是否有錯誤發生。

AMP線上檢測工具

訪問AMP線上工具,輸入網頁URL再按下檢測按鈕即可。

AMP語法概要

< amp-img>標籤寫法

<img srcset="uswnt-480.jpg 480w, 
             uswnt-640.jpg 640w, 
             uswnt-960.jpg 960w,
             uswnt-1280.jpg 1280w" 
     sizes="(max-width: 400px) 100vw, 
            (max-width: 960px) 75vw, 
            640px" 
     src="uswnt-640.jpg" alt="USWNT World Cup victory">

vw viewport width
原始預設圖片檔名:*uswnt-640.jpg,但有其它4個適應式的大小尺寸:
1. uswnt-480.jpg
2. uswnt-640.jpg
3. uswnt-960.jpg
4. uswnt-1280.jpg
一共準備了五種規格。

  • 規則1. 瀏覽器的網頁顯示規模(viewport)在400 pixels以下,圖片顯示大小為:100%。
  • 規則2. viewport 介於400 pixels ~ 960 pixels之間,圖片顯示大小為:75%。
  • 3.舉例:
    如果瀏覽器的viewport大小為:600 pixels(符合規則2),所以圖片比例應為:75%,那麼瀏覽器就會試著去找寬度為450 pixels的圖片。
    問題是並沒有這張規格的圖片,所以只好往上(更大)規格找到「最接近450 pixnels」的圖片(即:1. uswnt-480.jpg)。
    而若是在Retina顯示器的DPR值為2的情況,當然要乘以2,也就是要找900 pixels的圖片,同理可證,答案應是顯示:3. uswnt-960.jpg
原文出處

自訂style-sheet

自訂css樣式表,必需遵照以下寫法,與以往不同的是要在styel後面加上amp-custom

<style amp-custom>
/*自訂內容寫在這裡*/
</style>
本文大網

活本來沒有什麼好與壞,只要你願意怎樣填滿它,它就隨同而行。


EmoticonEmoticon