2010-06-15 4 views
0

JavaScript를 사용하여 브라우저를 닫거나 뒤로 가기 버튼을 누르기까지 누군가 내 웹 페이지를보고 있었던 시간을 확인하는 방법이 있습니까? 백그라운드에서 몇 초마다 PHP 페이지에 메시지를 보내는 것과 같은 것?javascript/html - 페이지 방문 시간

+0

는이 작업을 수행하고 모바일 사용자가 당신을 싫어합니다. – msanford

답변

1

페이지가로드 될 때 타이머를 시작하고 페이지가 언로드되면 타이머를 중지하십시오.

var timeSpent = 0; //seconds on page 
var timer; 
window.onload = function() { 
    timer = setInterval(function() { timeSpent++; }, 998); 
}; 

window.onunload = function() { 
    timer = clearInterval(timer); 
    //.. do something with timeSpent here... 
} 
+1

이 기능이 매 초마다 호출된다는 보장은 없습니다. 종종 지연이 있습니다.) –

1

onUnload 이벤트에서 AJAX 요청을 실행 해 볼 수도 있습니다. 그러면주기적인 폴링보다 더 정확한 시간 (네트워크 트래픽이 적음)을 얻을 수 있습니다.

3

AJAX 기술을 사용하여이를 구현할 수있는 몇 가지 방법이 있습니다. jQuery를 사용하여

:

var startTime = new Date();  
$(window).unload(function() { 
    var endTime = new Date(); 
    $.ajax({ 
    url: "yourpage.php", 
    data: {start: startTime, end: endTime} 
    }); 

}); 
관련 문제