2017-09-27 43 views
1

JavaScriptでユーザーの動作を確認するデフォルトの方法はありますか?この問題に対処する方法ではない場合。Javascriptを使用してアイドル状態を確認する方法

+1

あなたは 'ユーザの活動' とはどういう意味ですか? –

+0

一度ユーザーがアプリケーションにログインすると、特定の時間アプリケーションがアイドル状態のままになると、アプリケーションがログアウトする必要があります.NBバンキングページ... –

答えて

0

Javaスクリプトでこれを行うデフォルトの方法はありません。この問題に対処する1つの方法は、JavaScriptイベントを使用することです。

this.lastActiveTime = new Date(); 
 
      window.onclick = function() { 
 
       this.lastActiveTime= new Date(); 
 
      }; 
 
      window.onmousemove = function() { 
 
       this.lastActiveTime= new Date(); 
 
      }; 
 
      window.onkeypress = function() { 
 
       this.lastActiveTime= new Date(); 
 
      }; 
 
      window.onscroll = function() { 
 
       this.lastActiveTime= new Date(); 
 
      }; 
 
       
 
      let idleTimer_k = window.setInterval(CheckIdleTime, 10000); 
 
     
 
      function CheckIdleTime() { 
 
//returns idle time every 10 seconds 
 
        let dateNowTime = new Date().getTime(); 
 
        let lastActiveTime = new Date(this.lastActiveTime).getTime(); 
 
        let remTime = Math.floor((dateNowTime-lastActiveTime)/ 1000); 
 
// converting from milliseconds to seconds 
 
       console.log("Idle since "+remTime+" Seconds Last active at "+this.lastActiveTime) 
 
      }
<div> APP Here <br/><br/><br/><br/><br/><br/>make activity here<br/><br/><br/><br/><br/>Till here </div>

+0

Oh Great Man!ありがとうございました –

0

ここでは、ユーザーが約10分間アクティブでなかった場合に何かが発生する機能の短い例を示します。どこか特定のサービスで

window.lastActivity = Date.now(); 
document.addEventListener('click', function(){ 
    window.lastActivity = Date.now(); 
}) 

:アプリの初期化時に

ユーザがブラウザを最小化する場合、それは間違って作業しているいくつかのタイマーに依存しないため

var TIMEOUT = 600000 //10 mins 
var activityChecker = setInterval(check, 3000); 

function check() { 
    var currentTime = Date.now(); 
    if (currentTime - window.lastActivity > TIMEOUT) { 
     // do something useful, for example logout or whatever 
    } 
} 

このアプローチはいいです別のタブなどに切り替えてください。 数秒ごとにlastActivityタイムスタンプで現在のタイムスタンプをチェックするだけです。 あなたが必要とする他のタイプのイベントや、ユーザーをアクティブと見なすのに適したその他の条件で、自分のコード内の「クリック」イベントを変更することができます。

関連する問題