CI 묻고 답하기

제목 페이지 접속 시간과 이탈 시간 저장
카테고리 CI 4 관련
글쓴이 황현빈 작성시각 2020/11/10 17:08:12
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 9837   RSS

페이지 체류시간을 측정하기 위해 페이지 접속 시간과 이탈시간을 저장하려고 합니다.

다른 페이지로 넘어 갈때는 정확히 기록을 남기고 있는데페이지를 닫아버리거나 컴퓨터를 종료했을때 이탈시간을 저장할 방법이 떠오르지 않아서페이지 접속시 ajax를 1분에 한번씩 실행해서 이탈시간을 업로드 하려고 합니다.

좋지 않은 방식인거같은데 이렇식으로 1분에 한번씩 ajax를 사용해서 db 업데이트 작업이 일어나게되면 사용자가 많을경우 부하가 많이 심할까요?

 다음글 에러 질문드립니다. (6)
 이전글 스마트에디터 이용중에 문의드립니다. (3)

댓글

한대승(불의회상) / 2020/11/10 17:37:42 / 추천 0
window객체의 unload 이벤트를 활용해 보세요.
황현빈 / 2020/11/10 17:40:12 / 추천 0

jQuery(window).bind('beforeunload', function () {
  var con = '정상 로그아웃';
  var login_time = sessionStorage.getItem('login_time');
  jQuery.ajax({
   type: "POST",
   url: '/index.php/fundreporting/logout?company=' + getParam("company"),
   async: false,
   data: {
     con:con,
     login_time:login_time
   }, // or whatever timeout in milliseconds you want
   success: function(data){
       // Do whatever you want
   }
  });
});

 

 

window.onbeforeunload = function(){
  var logout_time = getTimeStamp();
  var login_time = sessionStorage.getItem('login_time');
  var con = '정상 로그아웃';
  xmlhttp=new XMLHttpRequest();
  xmlhttp.open("GET","http:///dev_sales.durianit.co.kr/index.php/fundreporting/logout_close?logout_time=" + logout_time+"&login_time="+login_time+"&con="+con,true);
  xmlhttp.send();
};

황현빈 / 2020/11/10 17:40:34 / 추천 0
이런방식으로 시도해보고 있는데 잘 안돼서요ㅠㅠㅠ 어디가 잘못된걸까요?ㅠㅠㅠㅠ
한대승(불의회상) / 2020/11/10 20:24:31 / 추천 0
@황현빈 그러게 말입니다. 어디가 잘못됐을까요?
황현빈 / 2020/11/11 09:50:32 / 추천 0

ie 에서는 동작하는데 크롬에서는 동작 안되네요

fhteprhd / 2020/11/17 16:46:42 / 추천 0
window.addEventListener("beforeunload", function (e) { 
if (closing_window) { 
//작업
 
});