2009-11-17 5 views
1

작업 표시 줄에서 브라우저 창을 닫으면 세션이 손상되지 않습니다. close (X) 버튼을 사용하거나 Javascript를 사용하여 Alt + F4를 눌러 브라우저를 닫을 때이 문제를 처리 할 수 ​​있습니다. 하지만 작업 표시 줄에서 창을 닫으면 어떻게 세션을 지울 수 있습니까? 이 문제는 현재 창을 닫기 전에 이미 열려있는 다른 브라우저 창이있는 경우에만 발생합니다. 응용 프로그램에 액세스하면 세션이 여전히 유효하므로 이전에 액세스 한 페이지로 직접 이동합니다.작업 표시 줄에서 브라우저 닫을 때 세션 삭제

도움을 주시면 감사하겠습니다.

답변

1

세션이 서버 측에 있고 브라우저가 종료 될 때 브라우저에 서버에 알리지 못합니다.

일반적인 방법은 세션의 시간 초과를 설정하는 것입니다. 브라우저가 X 분 동안 서버에 액세스하지 않은 경우 세션이 닫힙니다.

+1

세션 시간 제한이 매우 낮게 설정된 경우 (브라우저가 세션을 열린 상태로 유지하기 위해 서버에 일반 ajax "ping"을 보내고있는 상태에서 1 분 단위로). 브라우저가 종료 된시기를 알아야 할 때 유용하며 비교적 빨리 알아야합니다. – skaffman

+0

감사합니다. david, 하지만 응용 프로그램의 세션 시간 초과가 이미 설정된 30 분이되어야합니다. :( –

1

아마도 클라이언트 측 세션 쿠키를 사용하여 '세션 ID'를 저장하고 서버 측 세션과 비교하여 서버 측 세션 관리 메커니즘을 보완 할 수 있습니다. 브라우저가 종료되면 쿠키가 삭제되므로 '세션 ID'가 사라지면 두 번째 창이 세션을 계속할 수 없습니다.

관련 문제