ロード時間カウンター

同僚、友人、そしてちょうどhabralyudi。 1週間前、ダウンロードカウンターのコードがWeb Optimizatorにアップロードされました(ページの読み込み時間の測定に関するもう少し詳細な情報は、ダウンロード速度の分析と オンラインストアのオーバークロックに関する記事にあります )。



現在、高負荷ではない(それぞれの)プロジェクトは、エンドユーザーにページをロードする実際の速度を確認する余裕があります。



Web Optimizatorのダウンロード時間

このサイトの読み込み時間によるwebo.inユーザーの分布図





現在の統計と受信コードの例はここにまとめられています。

http://webo.in/my/action/counter/?url=webo.in

これまでのところ、すべてが十分なテストモードになっています(すべての統計が収集されますが、これまでのところは一般的な形式でのみ表示されています)。 表示するには、登録する必要があります。



すでにあるもの:

1.データ収集:)

2.ロード時間によるユーザー数の分布のグラフ

3.出力平均ロード時間

4.ページを最大4秒まで読み込んだユーザー数の出力(最適化のためのいくつかの特性パラメーター)。

5.日付範囲を設定する機能。

6.個々のブラウザーおよびファミリーでデータを表示する機能(合計18)



数日以内に追加される予定のもの:

1.特定のサイトの閉鎖統計

2.個々のブラウザのスライスダウンロード時間(現在はデータベース17 main)

3.最速/最速のページにスライスを追加し、個々のページの統計を表示します。



平均的なブログ/ストアサービスで1日に数千件のヒットがあったとしても、問題なく存続します。 統計の処理が中断された場合(現在、ログは10分ごとにデータベースに送られます)-サーバーはゴムではないので、メインの「重いウェイト」を振るでしょう。



解決されない問題:

1.ロード時間ごとにページのリストを表示するのが最も便利な形式は何ですか? このために、他のより便利なモードをソートまたは発明する機能を備えたページごとのページ?

2. Cookieを設定せずに、同じページへのユーザーの繰り返しエントリ(キャッシュから静的データを取得できる場合)を追跡する方法についてアイデアをお持ちの方がいらっしゃれば幸いです。 Cookieを統計サーバーに送りたくありません。

3.はい、画像のnginxでLast-Modified



を無効にする方法は? 見出しは最小限に抑えたい。



当然、どんなコメントでも歓迎です。 コードと利用可能な機能はページで入手できます

http://webo.in/my/action/counter/



動作原理



JavaScriptは、メインパラメータを使用して統計サーバーからの外部画像呼び出しをwindow.onload



イベントに追加します。 window.onloadは、ページ全体がブラウザにロードされたときにのみ機能します 。 他のハンドラーと競合することはないはずです。コードは次のようなものです(理解を改善するために少し書式設定されています。 統計カウンターの整理に関するメモで詳細に検討されています )。



  var __WEBO_UA = 0;
 var __WEBO_START =新しい日付();
 (関数(){
	 window [/ * @ cc_on!@ * / 0? 'attachEvent': 'addEventListener'](/ * @ cc_on 'on' + @ * / 'load'、
		関数(){
			新しい画像(1,1).src = "http://s.webo.name/0.gif?" +
			 __WEBO_UA + ";" +
			 ((新しい日付())-__ WEBO_START)+ ";" +
			エスケープ(location.href)+ "; 0;" +
			 Math.random()
		 }、false)
 }()); 


当然、ブラウザでページの初期外観を測定したい場合は、少し前のイベント-onDOMReadyを組み合わせたものにハングアップできますが、これはすでに好みの問題です。 現在のバージョンのカウンターは、パフォーマンスにまったく影響しません(より正確には、ほとんどすべての現在のRunetカウンターよりもはるかに少ない効果です)。



このアイデアは新しいものではありませんが、どこでもパブリックな実装を見たことはありません。 一般に、私見では、これはウェブサイトのパフォーマンスの「ポイントバイポイント」プロファイリングのための便利なツールであるはずです-結局のところ、例えば、コードは1ページのみにインストールできます。



いつものように、私コメントと新鮮なアイデアを待っています: webo.inの統計出力の例



PSカウンターがhabraeffectを置かないことを願っています:)




All Articles