4

私が開発しているアプリケーションでは、特定のユーザーがアプリケーションにログインしたままになっている時間を保存する必要があります。残念ながら、Web アプリケーションでは、ユーザーがログオフする方法がいくつかあります。

  1. ユーザーがログオフをクリックします。
  2. ユーザー セッションの有効期限が切れます。
  3. ユーザーがウィンドウを閉じます。
  4. ユーザーがアドレス バーに別のサイトの URL を入力します。

1 つ目は、アプリケーションがログオフ プロセスを制御できるため、非常に簡単です。しかし、他のものでは、それはトリッキーになります。

この問題を解決するにはどうしますか?

4

2 に答える 2

7

各ページ ビューで、カウントを更新します。彼らがログアウトした場合、正確な測定値が得られます。彼らが別の場所に移動した場合、またはその他の方法で、あなたが外出しているのは、彼らが 1 つのページにいた時間の長さです。

正確な測定が本当に重要であるとすれば、毎分 AJAX の「ハートビート」が必要になるかもしれませんが、それはやり過ぎの可能性が高いです。

于 2008-10-14T22:14:36.727 に答える
1

#3と#4の場合、計算の時間を確保するためにwindow.onunloadイベントに何かを添付できますが、AJAXリクエストを送信する前にページが完全にアンロードされないように、コードが十分に高速であることに注意してください。

#2に関する限り、nickfによって提案された「ハートビート」がおそらくそこでの最良の解決策です。

于 2008-10-14T22:30:11.877 に答える