CLIEN

본문 바로가기 메뉴 바로가기 보기설정 테마설정
톺아보기 공감글
커뮤니티 커뮤니티전체 C 모두의광장 F 모두의공원 I 사진게시판 Q 아무거나질문 D 정보와자료 N 새로운소식 T 유용한사이트 P 자료실 E 강좌/사용기 L 팁과강좌 U 사용기 · 체험단사용기 W 사고팔고 J 알뜰구매 S 회원중고장터 B 직접홍보 · 보험상담실 H 클리앙홈
소모임 소모임전체 ·굴러간당 ·아이포니앙 ·주식한당 ·MaClien ·일본산당 ·방탄소년당 ·개발한당 ·안드로메당 ·자전거당 ·나스당 ·이륜차당 ·소셜게임한당 ·소시당 ·물고기당 ·골프당 ·바다건너당 ·클다방 ·요리한당 ·AI그림당 ·패스오브엑자일당 ·노젓는당 ·덕질한당 ·스팀한당 ·가상화폐당 ·AI당 ·키보드당 ·육아당 ·콘솔한당 ·여행을떠난당 ·3D메이킹 ·X세대당 ·ADHD당 ·날아간당 ·사과시계당 ·배드민턴당 ·야구당 ·농구당 ·블랙베리당 ·곰돌이당 ·비어있당 ·FM당구당 ·블록체인당 ·보드게임당 ·활자중독당 ·볼링친당 ·캠핑간당 ·냐옹이당 ·문명하셨당 ·클래시앙 ·쿠키런당 ·대구당 ·DANGER당 ·뚝딱뚝당 ·디아블로당 ·개판이당 ·동숲한당 ·날아올랑 ·전기자전거당 ·e북본당 ·갖고다닌당 ·이브한당 ·패셔니앙 ·도시어부당 ·FM한당 ·맛있겠당 ·포뮬러당 ·젬워한당 ·걸그룹당 ·안경쓴당 ·차턴당 ·총쏜당 ·땀흘린당 ·하스스톤한당 ·히어로즈한당 ·인스타한당 ·IoT당 ·KARA당 ·꼬들한당 ·어학당 ·가죽당 ·레고당 ·리눅서당 ·LOLien ·Mabinogien ·임시소모임 ·미드당 ·밀리터리당 ·땅판당 ·헌팅한당 ·오른당 ·영화본당 ·MTG한당 ·소리당 ·노키앙 ·적는당 ·방송한당 ·PC튜닝한당 ·찰칵찍당 ·그림그린당 ·소풍간당 ·심는당 ·라즈베리파이당 ·품앱이당 ·리듬탄당 ·달린당 ·Sea마당 ·SimSim하당 ·심야식당 ·윈태블릿당 ·미끄러진당 ·축구당 ·나혼자산당 ·스타한당 ·파도탄당 ·퐁당퐁당 ·테니스친당 ·테스트당 ·빨콩이당 ·공대시계당 ·터치패드당 ·트윗당 ·창업한당 ·VR당 ·시계찬당 ·WebOs당 ·위스키당 ·와인마신당 ·WOW당 ·윈폰이당
임시소모임
고객지원
  • 게시물 삭제 요청
  • 불법촬영물등 신고
  • 쪽지 신고
  • 닉네임 신고
  • 제보 및 기타 제안
© CLIEN.NET
공지[점검] 잠시후 서비스 점검을 위해 약 30분간 접속이 차단됩니다. (금일 18:15 ~ 18:45)

개발한당

질문 접속한 유저들의 체류시간을 저장하고 있는데요... 8

2020-06-24 21:35:57 61.♡.209.161
살로만

접속한 유저들의 체류시간을 확인하기 위해 데이터를 저장하기 위한 방법으로 

현재는 JS  setinterval 을 이용해서 5분마다 ajax 함수를 호출해서 디비에 저장을 하도록 되어 있는데요..


정확한 데이터를 확인하기 위해 개선을 할려고 하는데.. 좋은 방법이 있을까요? 


생각으로는 백엔드에서 nodejs 의 socketio 를 사용하고 프론트에서는 웹소켓을 이용할려고 하는데

백엔드 socketio 에서  login , disconnect 만 체크해서 시간을 계신하면 되고

프론트에서 주기적으로 서버를 호출할 필요가 없는 것이 맞나요? 


아니면 더 좋은 방법으로

아예 체류시간 확인이 필요한 페이지만 react 같은것으로 구현해서 웹사이트에 일부만 넣는 것도 가능한 것이겠죠? 


조언 좀 부탁드리겠습니다 

감사합니다. 

살로만 님의 게시글 댓글
SIGNATURE
Circle of Life 

나의 정체성을 찾아~
서명 더 보기 서명 가리기
  • 주소복사
  • Facebook
  • X(Twitter)
댓글 • [8]
삭제 되었습니다.
살로만
IP 61.♡.209.161
06-24 2020-06-24 21:45:50
·
@봉진@porybong2님 cs 처리하기 위해 다른 페이지들에 들어가있긴 하던데.. 이게 리포트 데이터를 만들어야 되서 구현이 되어 있는 듯 싶더라고요... 물론 다른 기능들도 또 들어갈 거 같기도 하고요.. 말슴 감사합니다.
goxgo
IP 121.♡.237.200
06-25 2020-06-25 09:10:17 / 수정일: 2020-06-25 09:10:28
·
웹소켓은 배보다 배꼽이 커질거 같아요. 봉진님 이야기처럼 애널리틱스에 체류 시간이 나오니 그걸 활용하시는게 제일 좋지 않을까요?
살로만
IP 1.♡.193.28
06-25 2020-06-25 10:48:44 / 수정일: 2020-06-25 10:50:17
·
@Gobi님
이번 WWDC 2020 요약을 보니 빅셔? 에선 사파리에서 에널리틱스가 막힌다고 하네요 ㅡ.ㅠ
머 웹소켓에서 로그인과 디스컨넷트만 체크해서 저장하고.. 추가 기능들은 추가이벤트로 넣으면 되지 않을가 싶은데. 저도 실서비스에서느 써보지 않아서 문의 글을 남겼던 것입니다.
말슴 감사합니다.
goxgo
IP 121.♡.237.200
06-25 2020-06-25 12:52:49
·
@살로만님 아 웹이신거죠? 앱으로 생각했습니다 ㅎㅎ
피그스킨
IP 112.♡.63.77
06-25 2020-06-25 10:13:52
·
옛날에 JQuery로 비슷한 개념을 구현 했었는데요
unload 함수를 사용하면, 브라우저를 닫을때 이벤트 동작을 하게 됩니다.
(지금 찾아보니 최근 버전 Jquery에서는 삭제되었군요)

추가로 다른 웹사이트로 이동시엔 뭘 했는지 기억이 안나네요 -_-;
아무튼 (최종 이탈시간 - 최초 인입시간)을 이탈시 쿠키값을 DB에 던져서 기록하긴 했었습니다.
살로만
IP 1.♡.193.28
06-25 2020-06-25 10:50:42
·
@옥둑히부산식돼지국밥님 jQuery 에 그런 기능이 있었군요.. 말슴 감사합니다.
_리내
IP 49.♡.44.104
06-25 2020-06-25 12:18:46 / 수정일: 2020-06-25 12:22:50
·
인터벌까지 쓸 필요가 있을까요? 진짜 초단위로 정확할 필요가 있다면 인터벌을 쓸 필요가 있겠지만... 사용성 측면에서 굉장히 우려가 됩니다. 본문의 요구사항대로라면 저는 이렇게 하겠습니다.

1. `DOMContentLoaded` 이벤트에 리스너를 등록하여 sessionStorage 에 인입 시간 기록 (쿠키나 localStorage 는 쓸 필요 없다고 생각합니다. 어차피 나가거나 창 닫으면 유의미한 정보가 아니니까.)
2. `beforeunload` 이벤트에 리스너를 등록하여 페이지 나갈 시 sessionStorage 에 저장했던 인입 시간을 꺼내 나가려는 시간과 대조하여 총 체류 시간을 계산 후, `navigator.sendBeacon` API 를 사용하여 서버에 시간 정보 전송

(추가) navigator.sendBeacon API 는 IE 에서 지원을 안하기 때문에, 만약에 IE 지원을 하셔야 한다면 그냥 XHR 호출하셔야 합니다. 그러면 다음 페이지 이동이 서버와의 통신 때문에 밀릴 수 있습니다. (동기적으로 작동하기 때문)

[참고자료]
- https://developer.mozilla.org/en-US/docs/Web/API/Window/DOMContentLoaded_event
- https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event
- https://developer.mozilla.org/en-US/docs/Web/API/Navigator/sendBeacon
빙고
IP 218.♡.18.242
06-25 2020-06-25 23:10:15
·
저도 소켓으로 구현할꺼 같은데 다른 방법이 있는지 궁굼하네요ㅋㅋ
새로운 댓글이 없습니다.
이미지 최대 업로드 용량 15 MB / 업로드 가능 확장자 jpg,gif,png,jpeg,webp
지나치게 큰 이미지의 크기는 조정될 수 있습니다.
목록으로
글쓰기
글쓰기
목록으로 댓글보기 이전글 다음글
아이디  ·  비밀번호 찾기 회원가입
이용규칙 운영알림판 운영소통 재검토요청 도움말 버그신고
개인정보처리방침 이용약관 책임의 한계와 법적고지 청소년 보호정책
©   •  CLIEN.NET
보안 강화를 위한 이메일 인증
안전한 서비스 이용을 위해 이메일 인증을 완료해 주세요. 현재 회원님은 이메일 인증이 완료되지 않은 상태입니다.
최근 급증하는 해킹 및 도용 시도로부터 계정을 보호하기 위해 인증 절차가 강화되었습니다.

  • 이메일 미인증 시 글쓰기, 댓글 작성 등 게시판 활동이 제한됩니다.
  • 이후 새로운 기기에서 로그인할 때마다 반드시 이메일 인증을 거쳐야 합니다.
  • 2단계 인증 사용 회원도 최초 1회는 반드시 인증하여야 합니다.
  • 개인정보에서도 이메일 인증을 할 수 있습니다.
지금 이메일 인증하기
등록된 이메일 주소를 확인하고 인증번호를 입력하여
인증을 완료해 주세요.