자바사춘기
117
2019-03-29 00:38:01
3
511

브라우저 탭종료나 닫힐때 이벤트 잡는거 가능한가요?



사용자가 브라우저를 닫거나(tab닫기포함)

이벤트를 잡아서 ajax로 서버의 세션을 끝내달라는 요청이 왔는데.

이게 직접 해보고 찾아보면 찾아볼수록 은근히 쉽지가 않더라구요.


혹시 비슷한 경험이나. 정확한 상황이 어떤지 아시는 분이 있으실까요?

조언좀 부탁드립니다.

0
0
  • 답변 3

  • 초무쿤
    3k
    2019-03-29 01:02:03 작성 2019-03-29 01:02:54 수정됨

    있기는 한데 100%완벽하게 작동하지 않습니다.

    (TAB닫는거는 체크가 되는데 브라우져 닫는거는 체크 않되던건던데..)

    중요한 부분은 해당 이벤트를 감안해서 설계하시면 않될거 같네요. 

    웹소켓 close해주는 부분이야 상관없겠지만요.

    0
  • 퓨리오사
    2k
    2019-03-29 09:03:23

    없는걸로 압니다.

    0
  • 배고파서서러워요
    2k
    2019-03-29 11:00:11

    못잡아요... 브라우저 이벤트는 서버가 잡는게 아니라, 클라이언트가 잡습니다.

    당연히 서버에서 이벤트가 잡히지 않았으니 처리가 불가능합니다.


    탭 이벤트 잡는것도, 그 탭이 parent를 갖고 있을때만 이벤트 감지가 되고, 자기랑 하등 상관없는 탭이라면 서버에서 당연히 잡을 수 없습니다.


    잡는 방법이 하나 있긴 하네요.

    그 유명한(?) Active X.....


    결국 해당 요청을 처리하려면 매번 서버에서 해당 로그인 사용자에게 이벤트를 보내서 없을 시에 끊어버리는 로직을 집어넣어야 하는데, 이게 좀 많이 큰 공사죠...

    (모든 페이지에 응답 소켓을 넣어야 하니....)

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.