2014-03-05 3 views
0

이것은 사용중인 카운트 다운 코드입니다. 사용자가 페이지를 다시로드하면 카운트 다운이 다시 시작됩니다. 사용자가 페이지를 닫았는지 여부에 관계없이 처음 방문한 후에 카운트 다운이 계속 실행되기를 원합니다. 방법을 제안하십시오. 나는 세션을 만드는 것이 도움이 될 것이라고 생각하지만 세션에 대해서는 전혀 모른다.카운트 다운 타이머가 멈추지 않아야합니다.

<span id="countdown" class="timer"></span> 
<script> 
var seconds =120; 
function secondPassed() { 
var minutes = Math.round((seconds - 30)/60); 
var remainingSeconds = seconds % 60; 
if (remainingSeconds < 10) { 
    remainingSeconds = "0" + remainingSeconds; 
} 
document.getElementById('countdown').innerHTML = minutes + ":" + remainingSeconds; 
if (seconds == 0) { 
    clearInterval(countdownTimer); 
    document.getElementById('bonus').innerHTML = "Buzz Buzz"; 
} else { 
    seconds--; 
} 
} 

var countdownTimer = setInterval('secondPassed()', 1000); 
</script> 
+0

카운터를 시작할 때 처음 방문했을 때 쿠키를 삭제할 수 있습니다. 이후 방문시이 시간부터 카운트 다운을 오프셋합니다. – Stu

+2

사용자가 창을 닫거나 페이지를 새로 고칠 시점을 모르기 때문에 쿠키 (최상의 크로스 브라우저 솔루션), 로컬 저장 장치 등과 같은 일부 영구 저장소에 카운터를 저장해야합니다 다음 번에 페이지로드가 마지막으로 저장된 값으로 시작됩니다. – Amnon

답변

0

질문이 완전히 완료되지 않았습니다. "영원히"또는 "처음 페이지에 액세스 한 후 잠시"카운터를 원합니다.

첫 번째로는 서버 측에서 계산해야합니다 (예를 들어 db 또는 파일을 만들거나 물건을 저장하는 데 익숙한 것이면 무엇이든 가능). 그리고 사용자를 식별하고 그가 처음으로 액세스했습니다. 그런 다음 사용자가 로그인 할 때마다이 정보를 다시 보내고 js에서 클라이언트 측에서 계산합니다.

두 번째로는 처음 액세스 한 타임 스탬프가있는 쿠키를 보내거나이 정보를 세션에 저장하고 사용자가 페이지에 액세스 할 때마다 사용하십시오.

+0

이것이 내가 원하는 것입니다. usser가 사이트에 들어가면 웹 페이지가 다시로드되는지 닫히는 지 여부와 상관없이 카운트 다운이 계속됩니다. 나는 타이머가 그가 페이지를 떠난 이전 시간부터 다시 시작하기를 원하지 않는다. 그것은 계속해서 진행되어야한다. 또한 W3 학교의 쿠키에 대해 배우려고 노력했습니다. 나는 많은 도움을 얻을 수 없었다. 샘플 코드를 얻을 수 있다면 좋을 것입니다. – Rushi

관련 문제