그래서 요점은 사용자가 일정 기간 동안 페이지에서 수행 한 작업을 감지하고 그렇다면 그의 세션을 활성 상태로 유지하기 위해 전화를 걸기위한 것입니다.
제 생각에는 사용자가 작업을 수행 할 때마다 활동이 발생하는 시간을 기록하십시오. 그리고 make-session-alive 호출이 만들어 져야 하는지를 결정하기 위해 check 함수가 정기적으로 호출 될 것입니다.
function recordFn(){
lastActiveTime = new Date().getTime();
}
//If there's a lot of clickable stuff, add a click listener to the container
Ext.getBody().on('click', recordFn);
//If there's a lot of input stuff
Ext.getBody().on('keypress', recordFn);
//If ajax call should be detected
Ext.Ajax.on('beforerequest', recordFn);
마지막으로, 정기적으로 전화를 체크 기능 : 사용자 활동 시간을 기록하는 리스너를 추가,
//The time when last make-session-alive call is made.
var lastSyncTime = new Date().getTime();
//The time when user did something on the page. Reassigned per user activity.
var lastActiveTime = lastSyncTime;
둘째 :
SessionExpiredTime = 1000 * 60 * 10; //ten minutes.
function checkFn(){
if(lastActiveTime - lastSyncTime < SessionExpiredTime){
//Make Ajax call to refresh session...
//Reassign
lastSyncTime = new Date().getTime();
lastActiveTime = lastSyncTime;
}
}
setInterval(checkFn, SessionExpiredTime - 1000 * 60);
했나를
첫째, 두 개의 전역 변수를 유지 .getTime() 여기에 : 'function recordFn() {lastActiveTime = new Date(). getTime();}'? – boatcoder
예, 누락되었습니다. 나는 그것을 수정했다. @ Mark0978 –