ユーザーが Web アプリケーションの特定のページに費やした時間を測定したいと考えています。最初に、ブラウザで onunload/onbeforeunload イベントをキャッチし、XMLHttpRequest を介してサーバーに通知することを考えました。ユーザーは次のように終了します。
<body onunload="userLeaves('/url/to/current/page',xxx);" ...> ... </body>
ここで、xxx は、ページがレンダリングされたときの初期タイムスタンプです。
残念ながら、このソリューションはすべてのブラウザー (Opera など) では機能しません。したがって、私の 2 番目のアイデアは、サーバーに対して常に ping を実行することでした。訪問時間を計算するには、誰かが最後の ping 時間を取り、最初のタイムスタンプから差し引く必要があります。しかし、特にユーザーが3つまたは5つのタブを開いて、すべてのタブが500ミリ秒ごとにイベントを発生させている場合、それは良い解決策だとは思いません...
訪問時間をどのように測定しますか?特定のページに費やされた時間を取得するためのより良いアイデアを誰かが持っていますか?