[解決済み] _gaq.push(['_trackPageLoadTime'])はどのように機能するのですか?
質問
Google AnalyticsのSite Speedの機能はどのようなものですか?
_gaq.push(['_trackPageLoadTime'])
はどのように機能するのですか?どのように動作するかについてのドキュメントはありますか?
どのように解決するのですか?
編集
: 2011年11月16日現在。
は
_trackPageLoadTime
関数は非推奨となり、その機能はデフォルトの設定である
. (機能的に言えば、オプトイン機能からオプトアウト機能になりました)。
_setSiteSpeedSampleRate
はこの機能でサンプルレートを設定するための新しい関数です。そのデフォルト値は
1
(1%のように)です。このサイトスピード機能の利用をやめるには、サイトスピードに
0
を渡す必要があります。
_gaq.push(["_setSiteSpeedSampleRate", 0]);
からは Google アナリティクス ヘルプセンター :
<ブロッククオートこのレポートは現在以下のブラウザをサポートしています。 以下のブラウザをサポートしています。Chrome、Internet Explorer 9 およびそれ以前のバージョンの Internet Explorer 9およびそれ以前のバージョンで、Google ツールバーがインストールされているInternet Explorer。具体的には サイトスピードのレポートを表示するには HTML5をサポートするブラウザー NavigationTimingインターフェイスをサポートするブラウザ、または Google Internet Explorerツールバー がインストールされている必要があります。
そのため、以前の多くのホームバック ソリューションが持っていたような、ページの読み込みにかかる時間を計算するための独自のタイマーを実装していません。代わりに、NavigationTiming と呼ばれる、現在上記のケースでのみサポートされている HTML5 の新機能を使用します。
EDIT : でサポートされるようになりました。 Firefox 7
(重要なのは、すべての読み込みで実行されるわけではないことです。代わりに、現在はページビューの約 2% をサンプリングするように設定されています。 試す に設定されています。NavigationTiming API をサポートするブラウザが増えると、サンプリングされる割合の合計が 10% に近づき始めることが予想されます)。
このインターフェイスは、DOM オブジェクトである
window.performance
(または、Chrome の以前のバージョンでは
window.webkitPerformance
) を使って
timing
属性(だから
window.performance.timing
). このオブジェクトには、主要なページロードイベントの時間すべての測定値が格納されており、Google Analyticsはページロード速度を判断するために、より重要な外側の値のうち2つを差し引いたものを表示します。
キャッシュなしでMashable.comを読み込んだ場合の測定値の例です(Chrome 11の場合)。
timing = {
connectEnd: 1306677079337,
connectStart: 1306677079337,
domComplete: 1306677083482,
domContentLoadedEventEnd: 1306677081765,
domContentLoadedEventStart: 1306677081576,
domInteractive: 1306677081576,
domLoading: 1306677079478,
domainLookupEnd: 1306677079337,
domainLookupStart: 1306677079337,
fetchStart: 1306677079337,
loadEventEnd: 1306677083483,
loadEventStart: 1306677083482,
navigationStart: 1306677079337,
redirectEnd: 0,
redirectStart: 0,
requestStart: 1306677079394,
responseEnd: 1306677079669,
responseStart: 1306677079476,
secureConnectionStart: 0,
unloadEventEnd: 0,
unloadEventStart: 0
}
これらの数値はエポックミリ秒、つまり1970年1月1日からのミリ秒です。どの値を引いてその値を生成しているのかについての文書は見たことがありませんが、ざっと見たところでは
ga.js
を見ると、どうやら
loadEventStart-fetchStart
:
h&&h[c]!=k&&h.isValidLoadTime?b=h[c]:e&&e[a]&&(b=e[a].loadEventStart-e[a].fetchStart);
上記のサンプルの場合、以下のように記録されることを意味します。
4.14秒
を記録することになります。
_trackPageLoadTime
を呼び出します。
W3C Navigation Timing 仕様より。
新しい リソースを取得する場合、HTTP GET またはそれと同等の方法で新しいリソースを取得する場合、fetchStart は は、ユーザエージェントが任意のリソースのチェックを開始する直前の時刻を返す必要があります。 ユーザエージェントが をチェックし始める直前の時刻を返さなければなりません。 そうでない場合は ユーザエージェントがリソースの取得を開始したとき の時刻を返さなければなりません。
この 属性は のロードイベントが発生する直前の時刻を返さなければなりません。 が発生する直前の時刻を返さなければなりません。それは を返さなければならない。 がまだ発生していない場合はゼロを返さなければなりません。
好奇心旺盛な人のために、順序は次のようになるようです。
<ブロッククオートconnectStart, connectEnd, domainLookupStart, domainLookupEnd, fetchStart, navigationStart, requestStart、responseStart。 domLoading、responseEnd。 domContentLoadedEventStart, domInteractive。 domContentLoadedEventEnd, domComplete, loadEventStart, loadEventEnd
記載されている0個の値に対して
unloadEventStart
そして
unloadEventStart
は、前のページのロードとアンロードの時間を表示します (ただし、そのページが現在のページと同じオリジンを持つ場合のみ)。
redirectEnd
と
redirectStart
は、ページのロードチェーンにHTTPリダイレクトがあった場合に追加される待ち時間を測定します。
secureConnectionStart
は、SSL 接続時間を測定するためのオプションのようです。
関連
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] AngularJSでデータバインディングはどのように機能するのですか?
-
[解決済み】なぜHTMLは "chucknorris "を色と見なすのか?
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
-
[解決済み] 文字列がすべて同じ部分文字列で構成されているかどうかを調べるにはどうすればよいですか?
-
[解決済み] node.jsで文字列のsha1ハッシュを取得するにはどうすればよいですか?
-
[解決済み] JavaScriptを使用してHTML要素に属性を追加/更新するには?
-
[解決済み] react-routerのハッシュフラグメントからクエリパラメータを取得する
-
[解決済み] 文字列とラベルのローカライズとグローバリゼーションのベストプラクティス【終了しました
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Node.jsでbase64エンコードされた画像をAmazon S3へアップロードする
-
[解決済み] Chart.jsを使ってドーナツチャートの中にテキストを追加するには?
-
[解決済み] 兄弟ノードを選択する方法はありますか?
-
[解決済み] JavaScriptを使用してHTML要素に属性を追加/更新するには?
-
[解決済み] React js 親コンポーネントから子コンポーネントの状態を変更する
-
[解決済み] JavaScriptでの大文字小文字を区別しない正規表現
-
[解決済み] JavaScriptで長い配列を小さい配列に分割する方法
-
[解決済み] javascriptでオプションのパラメータを扱う
-
[解決済み] jQueryを使用して、すべてのクリックイベントハンドラを削除するにはどうすればよいですか?
-
[解決済み] JavaScriptの文字列プリミティブとStringオブジェクトの違いは何ですか?