0

訪問者がタブまたはブラウザを閉じてページを離れたときに、ページに費やした時間をサーバーに報告することは可能ですか?Javascriptを使用します。

また、Firefox、Google Chrome、Safari、Opera、IE8で動作します(IE7と6は重要ではありません)。

ただし、どのような場合でも機能します。ブラウザが閉じている間、またはブラウザに別のアドレスが入力されている場合でも。

4

4 に答える 4

4

試すことはできますがwindows.onbeforeunload、すべての場合に機能するという保証はありません。

とにかく、私はあなたが他の多くの中でその機能を持っているグーグルアナリティクスを使うことを提案します(私はあなたがグーグルよりうまくやれるとは思えません!)。それは無料です。

于 2009-12-20T02:29:57.383 に答える
2

これを自分で実装する場合は、開始時刻を取得するタイミングを決定する必要があります。ページの上部にスクリプトタグを配置できます。これは、コンテンツがレンダリングされる前に実行される可能性があり、onloadイベントで待機します。すべての画像とスクリプトが読み込まれるまで、またはDOMの準備ができたときに発生するJQuery readyイベントのようなものまで、ただしリソースの読み込みを待機しません。この時点で、開始時刻を記録する必要があります。

<script>var startTime = new Date().getTime();</script>

次に、onunloadまたはonbeforeunloadイベントをリッスンし、画像を使用して次の情報を含むGETリクエストを送信できます。

<script>
  window.onunload = function() {
    var i = new Image();
    var timeSpentMilliseconds = new Date().getTime() - startTime;
    i.src = '/pagetime?timespent=' + timeSpentMilliseconds;
  }
</script>

リクエストが常に送信されるかどうかを確認するには、いくつかのテストを行う必要があります。ブラウザが閉じたり、起動が完了する前にタブが切り替わったりすることがあると思います。

于 2009-12-20T04:01:00.290 に答える
1

また、あなたのWebサイトの訪問者に関する同様の統計を提供するPiWikを試すこともできます。

于 2009-12-20T03:53:40.460 に答える
1

Google Analyticsを直接使用してみませんか?あなたが望むものに加えて、それはあなたの分析のためにはるかに多くのデータを提供します。そして、それは無料です。よろしく、フリーズ。

于 2009-12-20T04:24:12.183 に答える