2011-06-25 9 views
0

私はブラウザベースのインスタントメッセージングクライアントで作業しています。このアプリケーションは、可能であれば、ユーザーがアイドル状態になっていることを知る必要があります。どの主要ブラウザでも、アプリケーションがユーザーのアイドル時間をシステム全体で検出する方法はありますか?それに失敗した場合、ユーザーがアプリケーション自体で最後にアクティブだったときや、同じドメインの他のページで最後にアクティブだったときを検出するための推奨される手法はありますか?Webアプリケーションはユーザーのアイドル時間をどのように検出できますか?

+0

キーボードとマウスの活動のためのjavascriptイベントハンドラを見てください。http://www.javascriptkit.com/jsref/eventkeyboardmouse.shtml 設定された期間後にこれらのイベントを呼び出さないと、ユーザはアイドル状態になります。時間。 –

答えて

1

ユーザーが別のページに移動した場合、彼はアイドル状態ではないと見なすことができるため、問題は「現在のページでユーザーがアクティブですか?

bodyのイベントonMouseMoveにタイムアウトを設定できます。タイムアウトが発生すると、ある期間ユーザーが非アクティブになったことがわかります。そうでない場合、タイムアウト前にonMouseMoveを受信した場合は、タイムアウトをクリアするだけです。 同じようにonKeyPressも扱うことができます。

これは、ユーザーがページの多くのタブを開くと少し難しくなるかもしれませんが、これらのタブ間の通信にはlocalStorageを使用します。

関連する問題