タグ「Ajax」が付けられているもの

アクセスログは非同期で取るべきか

  • 投稿日:
  • by
  • カテゴリ:

アクセス解析プログラムを設置する場合、Webアプリ内で同期的に処理を行うか、JavaScript等で非同期に行うかという点について考えてみました。

まず同期で行う場合のメリットはというと、確実に全てのアクセスを捕捉できるということ。Webサイトには、通常の客のほかにも検索エンジンのクローラや怪しげなボットツールなどが訪問しにくるので、そういったアクセスの全てを把握できます。逆に、それらの機械的なアクセスが多い大手サイトの場合は、客のアクセス以上にその手のアクセスの情報ばかりが蓄積されてしまい、SEO解析の役に立たないというのも事実。

非同期で行う場合、アクセスログ集計の発動タイミングは恐らくJavaScriptによるAjax的な何かになると思われます。ということは、必然的に集計対象はAjaxに対応しているブラウザでのアクセスに絞られます。つまりは、客がブラウザでやってきた場合のアクセス状況のみを捕捉することになります。そして、何よりもサイトの表示に掛かる時間が同期版よりも確実に短い。前述のクローラ等のアクセスは全て捕捉することができなくなるのでそれらの情報が必要な場合には不便ですが、単純に客の行動を調べたい場合には非同期のほうが良いようです。

さて、非同期でアクセスログを取る場合の処理はどうすべきか。多くの場合、imgタグに画像出力CGIを貼り付ける形式が採用されているようですが、どうにもコード的に美しくない。となると、やはりPageLoad時にJavaScriptでAjaxをキックさせるのがベストかな。