2016-11-23 3 views
2

私のウェブサイトが遅いようです。そのため、パフォーマンスを向上させる方法を検討しました。サーバー側では、すべてが良好に見えます。しかし、クライアントサイドでは、JavaScriptを使用すると処理が遅くなることがあります。ロードスタックを見ると、私は2つの犯人に気付きました。GoogleのPlatform.jsプラグインを使用

最悪の2つの犯罪者はhttps://apis.google.com/js/platform.jshttps://www.google-analytics.com/analytics.jsでした。前者は+1ボタン用、後者は分析用に使用します。今の時点で、私はこのようにそれらをロードしています:

<script> 
    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 
    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 
    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 
    })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); 

    ga('create', '[MyId]', 'auto'); 
    ga('send', 'pageview'); 
</script> 

<script src="https://apis.google.com/js/platform.js" async defer></script> 

私はplatform.jsは、GoogleのプラスとGoogle Analyticsを含めた印象の下にありました。だから、私はこのようなものを使用して、単一の外部JSライブラリにダウン凝縮と考えていた:

(function(w,d,s,g,js,fs){ 
    g=w.gapi||(w.gapi={});g.analytics={q:[],ready:function(f){this.q.push(f);}}; 
    js=d.createElement(s);fs=d.getElementsByTagName(s)[0]; 
    js.src='https://apis.google.com/js/platform.js'; 
    fs.parentNode.insertBefore(js,fs); 
    js.onload=function(){ 
    g.load('analytics'); 
    }; 
}(window,document,'script')); 

これは、少なくともGoogleのプラスプラグインをロードします。しかし、実際に訪問を記録することはありません。 g.loadによってアナリティクスが導入されたようです。しかし、私のIDはどこにも割り当てられていません。同時に、私はplatform.jsバージョンでどこに割り当てるのかは分かりません。

誰でも洞察力を提供できますか?私はできるだけ外部リソースを少なくすることができればと思っています。

ありがとうございます。

答えて

0

それはこの2ライブラリがページを遅く理由を理解するのは難しい、彼らは通常、非同期tecnologies(と)と連携

enter image description here enter image description here

厚底のweigthの20未満Kbsの、そして通常は、このライブラリーCDNでホストされているので、ホストはあまり太っていないヨーロッパ人(テスト済みの人)ではないかもしれませんが、アメリカとLatam Serverも静かなのでこのオプションを破棄できます。

私はplataform.jsを読んできましたが、analytics.jsの共通点はありません。その理由は何ですか?おそらく、GoogleアナリティクスはIframeの他のリソースに含まれていますが、あなたを混乱させるかもしれませんが、正しく使用しないと、あなたの情報は送信されません。たぶんあなたはまだライブラリを持っていますが、情報が別のアカウントに送信されている可能性があります(これはiframeが埋め込まれている場合、Googla Analyticsは含まれていますが別のドメインにある場合、データは2つの異なるアカウントに送信されます)最初に理解すること)。

しかし、私がそれを理解していれば、あなたの主な二重のままにしておいてください。

あなたは両方のライブラリを1つにしたいと思うのですが、それはできないと思います。私はplataform Jsを確認しましたが、Gaオブジェクト(Googleアナリティクスで使用されているオブジェクト)やコレクションのURL(Googleアナリティクスに情報を送信する場所)への参照はありません。また、GAメインスニペットでは、使用される実行の日付は後で使用されます。

私はあなたに何を勧めますか?

1。ネットワークコンソールで、Googleアナリティクスのヒット数がhttp://www.google-analytics.comに送信され、SSLを使用していない場合はHTTPを使用してHTTPSコールが強制的に送信されます。安全なものだけを使用してください)。タグアシスタントを使用してこれを確認してください。 https://chrome.google.com/webstore/detail/tag-assistant-by-google/kejbdjndbnbjgmefkgdddjlbokphdefk。実装がまだ生きていることを確認してください。

2.- Googleタグマネージャをチェックすることができます。このツールは、PageView(HTML.load)内のDOMにライブラリを読み込むように設定できますが、この方法をお勧めしますヒット数がツールに送信されます(セッション数が少なくなります)。

3.コードをページの下部に移動します。これは良い考えではありません。前と同じ理由。

4.-この、それを行うには、そのまだ正しくない、あなただけのこのすべては、別途

の両方のコードを維持するライブラリ

$(document).ready(function() { 
 
    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 
 
    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 
 
    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 
 
    })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); 
 

 
    ga('create', '[MyId]', 'auto'); 
 
    ga('send', 'pageview'); 
 
});

の負荷を遅らせますこの2つのライブラリが本当の理由かどうかを確認することを強くお勧めします。

0

analytics.jsがplatform.jsに含まれていると、これは機能する場合がありますか?

(function(w,d,s,g,js,fs){ 
    g=w.gapi||(w.gapi={});g.analytics={q:[],ready:function(f){this.q.push(f);}}; 
    js=d.createElement(s);fs=d.getElementsByTagName(s)[0]; 
    js.src='https://apis.google.com/js/platform.js'; 
    fs.parentNode.insertBefore(js,fs); 
    js.onload=function(){ 
    g.load('analytics'); 
    }; 
    ga('create', '[MyId]', 'auto'); 
    ga('send', 'pageview'); 
}(window,document,'script')); 
+0

「gaが定義されていません(...)」というエラーが表示されます。 'g '変数は' ga(' create '、...)の直前にあります。それはフックですか?アナリティクスのものはどこにありますか? – user70192

+0

私は自分の答えを更新しました。試してみてください。 – macksol

+0

'analytics.js'は' platform.js'に含まれていません。 –

3

私はplatform.jsは、GoogleのプラスとGoogle Analyticsを含めた印象の下にありました。

いいえ、これは当てはまりません。 platform.jsは、GoogleアナリティクスAPIクライアントライブラリを読み込むことができます(これはプログラムでGAデータをレポートするために使用されます)。analytics.js(GAにトラッキングデータを送信するために使用されます)とは異なります。

あなたが示したコードに基づいて、これらのライブラリは両方とも非同期にロードされているため、サイトの読み込み時間を妨げてはいけません。 window.loadイベントが発生すると速度が低下する可能性がありますが、アプリケーションの重要なリソースの読み込みに影響しないため、サイトの読み込み速度が遅いということを意味するわけではありません。

あなたが本当にはまったく負荷メトリックに影響を与えることなく、これらのライブラリをロードしたい場合は、あなたがwindow.loadイベントが発生した後まで、それらをロード延期することができますが、正直なところ私はあなたが他のコードを持っている場合は待っていることをやるだろうwindow.loadが起動して初期化されます。

関連する問題