11

Google アナリティクスのセットアップ手順には次のように記載されています。

このトラッキング コード スニペットは、ページの HTML (または生成された HTML) 構造の下部、終了 <body> タグの前に表示されるように、サイトのページに含める必要があります。

彼らのコード スニペットは、この配置が完全に機能することを必要としますか? それとも、スクリプトを一番下に配置することでページ読み込みのパフォーマンスが向上するという理由だけで、Google はこれを提案していますか?

4

7 に答える 7

4

ページ読み込みのパフォーマンスを向上させるだけです。このコードが最初にあった場合、何らかの理由で分析コードの実行が遅くなると、ページの残りの部分はコードが終了するまで待機するか、読み込み前にタイムアウトになります。

分析コードは Google のサーバーに対してクエリを実行する可能性が高いため、終了する前にサーバーが応答するまで待機する必要があります。(絶対に禁じられています) Google の Web サーバーがバックアップされていたり、遅れていたりすると、Web サイトの読み込み時間に深刻な影響を与えます。

于 2009-07-01T20:22:20.820 に答える
3

ページのダウンロードをブロックしない、Better Google Analytics JavaScriptに関する記事があります。関連するGoogle アナリティクス JavaScript を動的に読み込む方法を参照してください。SOについての質問も。

于 2009-07-02T11:05:07.657 に答える
2

YSlowガイドより

スクリプトによって引き起こされる問題は、並列ダウンロードがブロックされることです。HTTP/1.1 仕様では、ブラウザがホスト名ごとに並行して 2 つまでのコンポーネントをダウンロードすることが推奨されています。複数のホスト名からイメージを提供する場合、2 つ以上のダウンロードが並行して発生する可能性があります。ただし、スクリプトのダウンロード中は、ホスト名が異なっていても、ブラウザーは他のダウンロードを開始しません。

状況によっては、スクリプトを一番下に移動するのが簡単ではないことがあります。たとえば、スクリプトが document.write を使用してページのコンテンツの一部を挿入する場合、ページの下部に移動することはできません。スコープの問題もあるかもしれません。多くの場合、これらの状況を回避する方法があります。

しばしば出てくる別の提案は、遅延スクリプトを使用することです。DEFER 属性は、スクリプトに document.write が含まれていないことを示しており、ブラウザーが引き続きレンダリングできるという手がかりになります。残念ながら、Firefox は DEFER 属性をサポートしていません。Internet Explorer では、スクリプトが延期される場合がありますが、必要なほどではありません。スクリプトを延期できる場合は、ページの下部に移動することもできます。これにより、Web ページの読み込みが速くなります。

于 2009-07-01T20:28:09.590 に答える
2

いずれにせよ、Google が提供するコードによって、クライアント側の遅延が原因でページの読み込みが遅延することがあります。ソースコードの最後に置くことで、ブラウザーが停止して、ページのレンダリングを続行する前に JavaScript が終了するのを待つことはありません。

最高のパフォーマンス結果を得るには、Analytics コードを domready / onload 関数に移動します。

于 2009-07-01T20:25:38.627 に答える
0

先日、同僚から質問されました。スクリプトが実行される前に読み込まれるドキュメント全体に関係があると思います。

より多くのドキュメントが読み込まれると、より多くのドキュメントをスクリプトで処理できます。

于 2009-07-01T20:21:39.307 に答える
0

ページのパフォーマンスのためだけだと確信しています。もちろん、これは、ページが最初にすべてをロードしたときに不要な JavaScript ライブラリ/スニペットを使用して実行できます。

于 2009-07-01T20:22:01.583 に答える
0

最下部のタグは、追跡スクリプトが Web サイトの動作に及ぼす影響を最小限に抑えるためだけに使用されていました。優先順位は、機能する Web サイトを作成し、機能したら追跡することです。すべてのページ ビューを追跡できるわけではありませんが、エンド ユーザーにとってはそれほど重要ではありません。

非同期構文は、信頼性とパフォーマンスの問題の両方を解決すると同時に、展開をシンプルに保ちます。

HEAD セクションの最後に配置されます。

于 2012-03-20T22:05:52.473 に答える