1

ブログ投稿を読んだ後、安全コードを追加して、関数を呼び出す前に Google アナリティクス オブジェクトが完全に読み込まれるようにすることを思いつきました。

典型的な Google Analytics コードは次のようになります。

var pageTracker = _gat._getTracker("X-UAXXXXX");
pageTracker._trackPageview();

pageTracker._addItem( bla bla );
pageTracker._trackTrans();

使用前に _gat-object が確実に読み込まれるようにするための 2 つのオプションを考えました。

1) JQuery.ready を使用して _get-functions を呼び出します。何かのようなもの:

$(document).ready(function() {
    var pageTracker = _gat._getTracker("X-UAXXXXX");
    pageTracker._trackPageview();
}

また

2) JavaScript タイムアウトを使用する

function checkGat() {

    if( gat_is_ready ) {
        var pageTracker = _gat._getTracker("X-UAXXXXX");
        pageTracker._trackPageview();
    } else {
        setTimeout('checkGat()', 1000);
    }

}

checkGat()

より良い解決策は何ですか?なんで?追加のコメントはありますか?

4

1 に答える 1

0

これはすべて不要です。新しいGoogle Analytics Asynchronous Codeを使用するだけです。それはあなたのためにこれを行います。

<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXX-X']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>

このコードを使用して、トラッキング情報を JavaScript 配列 (_gaq と呼ばれる) にページの早い段階で必要なだけ格納します。次に、ga.js が読み込まれて準備が整ったときにのみ、Google アナリティクスへの呼び出しを実行します。つまり、複雑なループを記述する必要がなく、JavaScript エラーが発生する競合状態が発生することはありません。

これには、ノンブロッキングであるため、わずかに高速であるという追加の利点があります。

于 2010-10-07T15:07:55.173 に答える