2013-08-15 1 views
0

해당 페이지가 열려있는 사용자를 표시하려는 웹 페이지가 있습니다. 서버 측에사용자가 자바 스크립트를 사용하여 웹 페이지를보고있는 것을 감지하는 방법

, 그는 해당 웹 페이지에 GET 요청을 제출 시간을 카운트하는 카운터있다 : 나의 현재 시도가

(I는 서버 측 Node.js를 사용하고 있습니다). 따라서 페이지를 두 번 이상 열면 counter++

사용자가 웹 페이지를 떠날 때마다 socket.io를 사용하여 서버에 websocket을 보냅니다. 이 소켓을 수신 할 때, 서버 측에이어서

window.onbeforeunload = function() { 
    socket.emit('ClosePage'); 
} 

, 그것은 일명 counter--

그래서 로직을 사용하여, 그것이 사용자가 웹 페이지를 열 때 검출 가능 때 1 씩 그의 카운터를 감소 실제로 웹 페이지를 닫습니다. 윈도우가 아직 (내 생각)을 언로드되지 때문에 사용자가 미친 듯이 페이지를 새로 고침 할 때

그러나, 문제가 발생, 서버는, 후에 그것을 감소하지 않고 계속 카운터를 추가합니다.

누구든지 이런 문제를 해결하는 방법을 알고 있습니까? 또는 누구든지 게시물을 읽는 사용자 또는 낯선 사람들을 표시 할 때 대부분의 포럼에서 사용하는 알고리즘을 알고 있습니까?

고맙습니다.

+0

Google 검색 중 일부 링크 만 있습니다. 여기에 그들 중 몇 명입니다 [Link1] (http://stackoverflow.com/questions/6741397/is-there-a-way-to-detect-if-the-user-has-pressed-the-refresh-button-using -jquery), [Link2] (http://stackoverflow.com/questions/6407395/knowing-user-refresh-the-page-web-stats) – Nilesh

답변

0

쿠키를 삭제하고 쿠키가있는 경우 개수를 증가시키지 않을 수 있습니다. 또는 IP를 차단할 수 있지만 일부 실제보기가 사라질 수 있습니다.

0

값을 감소시키기 전에 지연에 관해서는 맞습니다. 이 값은 socket.io의 연결 시간 초과 값과 상관 관계가 있습니다. 모든 사용자가 웹 소켓을 사용할 것이라고 보장 할 수는 없습니다. XHR 폴링 또는 다른 유형의 전송 계층을 사용하는 경우 감소하기 전에 시간 초과해야합니다. Websocket 사용자는 즉시 변경을 발생시킵니다.

0

Google 웹 로그 분석은 귀하의 사이트에있는 사람과 귀하가 실시간으로보고있는 콘텐츠를 보여줍니다.

관련 문제