解決Google警示:延後載入或以非同步方式載入禁止轉譯資源的解決方式 - 吉姆的電腦閣誌

吉姆的電腦閣誌

HTML5,Jquery,PHP,FreeBSD分享教學。電腦是用來節省時間及提升樂趣,不是用來把人綁住的。隨心而行,順著生命的脈動重新創造屬於自己的生活。

Breaking

Home Top Ad

Responsive Ads Here

Post Top Ad

Responsive Ads Here

2015-06-10

解決Google警示:延後載入或以非同步方式載入禁止轉譯資源的解決方式

Google提供了一個檢測網站的線上工具:PageSpeed Insights,能幫助網頁設計師檢測網頁速度及手機適應性。而且Google官方也宣稱「手機版本的網站」即日起將影響網站SEO排名,不管您是設計師或業主,只要能好好利用這個工具,它就能幫助您找出網頁設計的缺失,進一步調整網頁的設計內容,以期達到SEO最佳化及加快網頁載入速度。
通常我們都將css及javascript檔案引入在<head>.....</head>的區段內,但檔案稍大時就會得到警示內容:

清除前幾行內容中的禁止轉譯 JavaScript 和 CSS

您的網頁含有 6 項禁止轉譯指令碼資源和 4 項禁止轉譯 CSS 資源,對網頁的轉譯作業造成延遲。

Google的建議其實都很簡單易懂,諸如直接在元素上加上style定義,或是內嵌小型 JavaScript,這都不難做到,只是有一點「延後載入 JavaScript」,這個項目則需要花點時間才能搞懂它,以下是吉姆的心得及解決步驟分享:
以下列這段網頁原始檔為例來說說明如何延遲css及javascript的載入,原先的寫法是:
<head>
..
...
.....
<link rel="stylesheet" href=css/style1.css">
<link rel="stylesheet" href=css/style2.css">
<script src=js/jquery.min.js"></script>
<script src=js/bootstrap.min.js"></script>
....
...
..
</head>


  1. 延遲載入javascript

    要做到這點比較簡單,只要在script標籤中加上 async 即可:
    <script src="js/jquery.min.js" async></script>
    <script src=js/bootstrap.min.js" async></script>
  2. 延遲載入css

    1. 先下載 loadCSS.js 檔案,作者github連結:https://github.com/filamentgroup/loadCSS.git
    2. 然後先在<head>區段將js檔案載入:
      <script src=js/loadCSS.js"></script>
    3. 替換原先的stylesheet語法:
      <SCRIPT type="text/javascript">
      loadCSS("css/style1.css);
      loadCSS("css/style2.css");
      </SCRIPT>
    4. 改成
      <SCRIPT type="text/javascript">
      loadCSS('css/style1.css');
      loadCSS('css/style2.css');
      </SCRIPT>
    5. 大功告成。
  3. 加上保險

    為防止有些不支援javascript的瀏覽器無法載入css檔案,所以最好在原先的<head>區段加上:
  4. loadCSS.js額外說明

    1. loadCSS.js預設是將stylesheet語法插入DOM的第一個script標籤之前,如果有特殊需求時,可在後面加上參數,例如:
      loadCSS( "css/style1.css", window.document.getElementsByTagName( 'script' )[ 1 ] );
      就可以將stylesheet檔案插入到DOM的第二個script標籤之前。
    2. 改變媒體目標
      loadCSS( "css/style1.css", "", "print" );
      就是把預設的 media="all" 改為 media="print"。
    3. callback功能不在本例說明,請自行研究。
  5. Google 說明:為 CSS 傳送進行最佳化處理。

感謝更正:

2015.06.11:謝謝Chi-Kung Wen 指正錯誤(第2點-04),立馬修正。

沒有留言:

Post Bottom Ad

Responsive Ads Here

Pages