2012-08-06 3 views
1

사용자가 사이트를 떠날 때 알려줌으로써 데이터베이스의 필드 (특히 last_visit 필드)를 업데이트하여 각 사용자의 읽지 않은 항목을 확인할 수 있습니다.). 그러나 사용자가 사이트의 여러 탭을 열 때이 목표를 달성하기 위해 안정적으로 onbeforeunload을 사용할 수 없다는 사실을 어떻게 관리해야할지 모르겠습니다.사용자 닫기 탭 감지 또는 사이트 탈퇴

사이트의 열린 탭이 하나만있는 경우에만이 필드를 업데이트 할 수 있습니다.

아마도 테이블을 사용하여 며칠 동안 읽은 항목을 기록하고 그보다 오래된 스레드가 기본적으로 읽히는 것으로 가정하면 더 많은 기능을 사용할 수 있습니다.

당신은 어떻게 생각하십니까?

감사

+0

은 당신이 주위에 일을 찾는 것에 대해 생각하지 않은 이유는'사용자는 여러가 onbeforeunload' 때 탭/브라우저가 열려 있습니까? 사용자가 열어 놓은 탭 카운터를 유지해야하고, 업데이트 후, 카운터가 0이면 마지막 방문 시간을 업데이트하십시오. 단순한. 그렇지 않니? – Prasanth

답변

1

나는 그들이 각 페이지로드 사이트를보고있는 한 시간을 업데이트하기 위해 쿠키 또는 로컬 스토리지를 사용한다 생각할 수있는 모든. 이렇게하면 웹 사이트가 열려있는 모든 탭을 닫으면 쿠키/로컬 저장 항목이 업데이트되지 않고 나중에 다시 액세스 할 때 해당 값에 액세스 할 수 있습니다.

window.localStorage.setItem('lastVisit',Date.now); 

을 그리고 그것을 잡아 :

그래서 페이지가로드이 때마다 실행

var lastVisit = window.localStorage.getItem('lastVisit');