useを含める方法に関する Googleの従来の手順。そのため、何らかのコードが実際に実行されるまでブラウザが何らかの方法で外部 JavaScript ライブラリを非同期的にロードしたとしても、ページのロードは依然としてブロックされます。後の非同期命令は直接使用しませんが、ページの読み込みもブロックしますか?ga.js
document.write()
document.write()
document.write()
insertBefore
ただし、Google はキャッシュmax-age
を86,400 秒に設定します (1 日であり、publicに設定されているため、プロキシにも適用されます)。そのため、多くのサイトがまったく同じ Google スクリプトをロードするため、JavaScript はキャッシュからフェッチされることがよくあります。それでも、がキャッシュされている場合でもga.js
、リロード ボタンをクリックするだけで、ブラウザーが Google に変更について尋ねることがよくあります。そして、ga.js
まだキャッシュされていないときと同様に、ブラウザーは続行する前に応答を待つ必要があります。
GET /ga.js HTTP/1.1
ホスト: www.google-analytics.com
...
If-Modified-Since: 2009 年 6 月 22 日月曜日 20:00:33 GMT
キャッシュ制御: max-age=0
HTTP/1.x 304 は変更されていません
最終更新日: 2009 年 6 月 22 日 (月) 20:00:33 GMT
日付: 2009 年 7 月 26 日 (日) 12:08:27 GMT
キャッシュ制御: max-age=604800、パブリック
サーバー: ゴルフ
多くのユーザーが、ブラウザ ウィンドウで既に開いているニュース サイト、フォーラム、ブログの再読み込みをクリックするため、Google からの応答を受信するまで多くのブラウザがブロックされることに注意してください。SO ホームページをどのくらいの頻度でリロードしますか? Google アナリティクスの応答が遅いと、そのようなユーザーはすぐに気付きます。(スクリプトを非同期的にロードするためにネット上で公開されている多くのソリューションga.js
があり、特にこの種のサイトに役立ちますが、おそらく Google の更新された手順よりも優れているとは言えません。)
JavaScript が読み込まれて実行されると、Web バグ (追跡画像) の実際の読み込みは非同期になります。そのため、ページでbody.onload()
. この場合、Web バグがすぐにロードされない場合、リロードをクリックすると、実際には状況が悪化します。これは、リロードをクリックすると、If-Modified-Since
上記で説明したように、ブラウザがスクリプトを再度要求するためです。リロードする前は、ブラウザーは Web バグを待っているだけでしたが、リロードをクリックした後ga.js
は、スクリプトへの応答も必要です。
そのため、Google アナリティクスを使用しているサイトでは を使用しないでくださいbody.onload()
。代わりに、jQuery の$(document).ready()や MooTools のdomready eventなどを使用する必要があります。
Google の機能の概要も参照してください。Google アナリティクスがデータを収集する方法について説明しています。、トラッキング コードの仕組みを含む。(これはまた、Google がファースト パーティ Cookie の内容を収集することを正式なものにします。つまり、アクセスしているサイトの Cookie です。)
更新: 2009 年 12 月に、Google は非同期バージョンをリリースしました。上記は、アップグレードですべてが解決するわけではありませんが、念のためにアップグレードするように全員に通知する必要があります。