본문 바로가기
프로그래밍/업무로직

은행처럼 세션시간 연장하는 방법

by Daily Investing 2012. 9. 25.
반응형

출처 : http://www.okjsp.pe.kr/seq/200436(JSP QnA)

 

Q)은행처럼 세션시간이 10분정도 지나면 연장을 하고 싶은데요.. 사이트가 크고 다양한 경우에도 정확히 운영될려면 프로그램으로 가능한지.. 아님 별도 솔루션이 있는지 궁금합니다.

실제 은행시스템은 어떻게 운영되고 있는건지 혹시 아시는분 계시면 꼭 좀 답변부탁드립니다.

A)javascript로 10분 카운트 하시고, 10분 됐을때 Ajax로 무의미한 거래 한번 날려주세요.(세션 타임은 적당히 15분 정도로 하시면 됩니다, 주의사항-alert 시 timeout 정지되는 사항 고려요)
1금융권 은행도 이렇게 처리되고 있습니다.(100% 확실한곳 1곳, 예상 1곳)

 

-------------------------------------------------------------------------------------------------------

출처 : http://m.kin.naver.com/mobile/qna/detail.nhn?d1id=1&dirId=1040202&docId=73554307&qb=amF2YXNjcmlwdCDshLjshZgg7Jew7J6l&enc=utf8&section=kin&rank=1&search_sort=0&spq=0

질문글대로 은행에서와 같은 시간 만료를 자바스크립트로 해서

시간을 카운트 하게 했습니다.

그래서 카운트가 종료되면 페이지 이동을 시켜서 세션을 끊어버리게끔 단순하게 했는데요

"연장" 하는 버튼 클릭시 카운트 되는 시간을 초기에 지정해놨던 시간으로 되돌리고 싶은데

아무리 생각해봐도 방법을 모르겠네요.

소스는 아래와 같습니다.

<script>

var iMinute = 10;// 시간 지정 분
var iSecond = iMinute * 60 ; //초단위로 환산
var timerchecker = null;

onload=initTimer //페이지 로드시 initTimer함수 실행(시간 카운트)


Lpad=function(str, len)
{
str = str + "";
while(str.length < len)
{
str = "0"+str;
}
return str;
}

initTimer=function()
{
rMinute = parseInt(iSecond / 60);
rSecond = iSecond % 60;
if(iSecond > 0){
timer.innerHTML = "<img src='/member/img/sout1.gif' border='0' align='absmiddle'>&nbsp;"+Lpad(rMinute, 2)+":"+Lpad(rSecond, 2);
iSecond--;
timerchecker = setTimeout("initTimer()", 1000); // 1초 간격으로 체크
}else {
clearTimeout(timerchecker);
document.goint.submit();
}
}

 

-------------------------------------------------------------------------------------------------------

 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> sjisbmoc </title>
<script language='javascript'>
<!--

var iMinute;// 시간 지정 분
var iSecond; //초단위로 환산
var timerchecker = null;
window.onload = function()
{
fncClearTime();
initTimer(); //페이지 로드시 initTimer함수 실행(시간 카운트)
}

Lpad = function(str, len)
{
str = str + "";
while(str.length < len)
{
str = "0"+str;
}
return str;
}

initTimer = function()
{
rMinute = parseInt(iSecond / 60);
rSecond = iSecond % 60;
if(iSecond > 0)
{
timer.innerHTML = "<img src='/member/img/sout1.gif' border='0' align='absmiddle'>&nbsp;"+Lpad(rMinute, 2)+":"+Lpad(rSecond, 2);
iSecond--;
timerchecker = setTimeout("initTimer()", 1000); // 1초 간격으로 체크
}
else
{
clearTimeout(timerchecker);
document.goint.submit();
}
}

function fncClearTime()
{
iMinute = 10;
iSecond = iMinute * 60;
}

//-->
</script>
</head>
<body leftmargin='0' topmargin='0'>
<form name='frm'>

<span id='timer'></span>&nbsp;<input type='button' value='연장' onclick='javascript:fncClearTime();'>

</form>
</body>
</html>

 

 

반응형

'프로그래밍 > 업무로직' 카테고리의 다른 글

윤달 계산하기  (1) 2012.11.01
DB에 동일 데이터가 2번 저장되는 경우  (0) 2012.09.25