localstorage의 userData
항목은 서버에서 전달 된 JSON 문자열에 매핑됩니다. 내가 원하는 것은 PHP 세션이 끝날 때마다 localStorage에서이 항목을 제거하고 userId를 default로 설정하는 것입니다.setTimeout() 함수를 사용하여 localStorage에서 항목 제거
1 페이지를 다시로드
main.js : sessionStartTime : 1422232761
주요는
var userIdDefault = 1; var sessionDuration = 1440; if(localStorage.getItem('userData')) { var userDataStored = JSON.parse(localStorage.getItem('userData')); var userId = userDataStored["userId"]; var sessionStartTime = parseInt(userDataStored["sessionStartTime"]); var sessionStopTime = sessionStartTime + sessionDuration; } else { var userId = userIdDefault; }
main.js
$(document).ready(function() { if(userDataStored) { var timeNow = Math.floor(new Date().getTime()/1000); waitTime = sessionStopTime - timeNow; setTimeout(function() { console.log('sessionStartTime: ' + sessionStartTime); console.log('waitTime: ' + waitTime); console.log('timeNow: ' + timeNow); console.log('sessionStopTime: ' + sessionStopTime); localStorage.removeItem("userId"); var userId = userIdDefault; }, waitTime); } });
브라우저 콘솔 로그를 variables.js. js : waitTime : 1434 main.js : timeNow : 1422232767
main.js : sessionStopTime : 14222342012 페이지를 다시로드
main.js : sessionStartTime : 1422232761
main.js :있는 waittime : 1416
main.js : timeNow : 1422232785
main.js : sessionStopTime는 : "23"로그인 : 1422234201는
오브젝트 {사용자 ID userDataStored "login2", 이름 "이름"이 lastName : "이름", 이메일 : "예를 들어, @ 메일. co.kr "...}userId를
"23"
브라우저 창이 열려있을 때만 데이터를 저장하기 때문에 sessionStorage를 사용할 수 없습니다. PHP 세션이 끝날 때까지 데이터를 저장해야합니다. – JareX
PHP 세션과 로컬 브라우저가 연결되어 있지 않습니다 ... 페이지가로드 될 때 일종의 검사를 코딩해야합니다 .... – epascarello
그래서 PHP 세션이 JSON 문자열에서 시작되었을 때 유닉스 Epoch 타임 스탬프를 포함 시켰습니다. sessionStartTime. PHP 세션은 1440 초 동안 지속됩니다 (20 분) - sessionDuration. 따라서이 둘을 추가하면 PHP 세션이 끝나는 시간 인 sessionStopTime이 생깁니다. 그런 다음 실제 시간과 비교합니다. 나는 setTimeout()을 올바른 방법으로 사용하고 있는지 알 수 없다. – JareX