2013-05-16 3 views
0

우리는 24 시간 카운트 다운 타이머가 있습니다. 문제는 페이지가 새로 고침 될 때마다 타이머가 다시 시작된다는 것입니다. 같은 사용자에 대해 다시 시작하지 않도록 쿠키를 만들려면 어떻게해야합니까? 그리고 다시 0으로 내려 가면 다시 시작됩니까? 우리가 지금까지 무엇을 가지고쿠키 문제가있는 JS 카운트 다운 타이머

:

<script type = "text/javascript"> 
var totalSeconds; 
function initiate(seconds) 
{ 
    totalSeconds = parseInt(seconds); 
    setInterval("timeUpdate()", 1000); 
} 
function timeUpdate() 
{ 
    var seconds = totalSeconds; 
    if(seconds > 0) 
    { 
      totalSeconds--; 
      var hours= Math.floor(seconds/3600); 
      seconds %= 3600; 
      var minutes = Math.floor(seconds/60); 
      seconds %= 60; 
      var timeIs = ((hours < 10) ? "0" : "") + hours + ":" + ((minutes < 10) ? "0" : "") + minutes + ":" + ((seconds < 10) ? "0" : "") + seconds; 
      document.getElementById("timeLeft").innerHTML = "" + timeIs; 
    } 
    else 
    { 
      document.getElementById("timeLeft").innerHTML = ''; 
      document.getElementById("message").innerHTML = ''; 
    } 
} 
initiate(24 * 60 * 60); 
</script> 

답변

0
document.cookie="name=" + cookievalue; 
    alert("Setting Cookies : " + "name=" + cookievalue); 

SEE HERE

+0

어떻게 사용합니까? 어디에? 코드 조각을 페이지에 함께 넣는 방법을 보여줄 수 있습니까? 도와 주셔서 감사합니다! – user2272002

+0

링크에서 예제를 볼 수 있습니다 – PSR

0

먼저 우리가 설정 한 쿠키를 읽을 수있는 기능이 필요합니다. 문제는이 대답 그래서 How do I create and read a value from cookie?

에 주어진 함수를 사용하여, 우리는 우리의 코드에서 두 가지 기능 createCookiesetCookie 있습니다.

이제 설정하고 모두 당신의 기능이 잘 작동하고 유지

initialize(totalSeconds); 

아래에 주어진 지금 초기화

var 
    //Get time started 
    timeStarted = getCookie('timeStarted'), 
    //To store total seconds left 
    totalSeconds, 
    //Current Time 
    currentTime = parseInt(new Date()/1000), 
    //Timer Length 
    timerLength = 24 * 60 * 60; 

if(timeStarted == "") { 

    //Time not yet started. Start now. 
    createCookie('timeStarted', currentTime, 365); 

    //We started time just now. So, we have full timer length remaining 
    totalSeconds = timerLength; 

} else { 

    //Calculate total seconds remaining 
    totalSeconds = timerLength - (currentTime - timeStarted)%(timerLength); 
} 

아래에 주어진 페이지로드에 쿠키를 얻을.

쿠키 기간으로 365 일을 사용했습니다. 우리는 시작 시간 만 있으면됩니다.

요구 사항에 따라 코드를 변경하십시오.

이 코드에 대한 설명이 필요하면 알려주십시오.

+0

고마워,하지만 난 이것에 초보자입니다. 어디에 initialize (totalSeconds); 정확하게? – user2272002

+0

나는 첫 번째 코드와 쿠키 코드를 추가하고 위에서 말한대로 설정하고 얻으려고했다. 그리고 body onload initialize (totalSeconds); 하지만 타이머가 페이지 새로 고침에서 다시 시작됩니다. 코드 블록을 모두 사용해야 만하는 것처럼 친절하게 생각해 주시겠습니까? 도와 줘서 고마워! – user2272002

+0

서버에서 파일을 실행하고 브라우저에서 쿠키를 사용할 수 있기를 바랍니다. 서버에서 실행되는 파일은 쿠키로만 재생할 수 있습니다. 넣을 수 있습니다 initialize (totalSeconds); 결국. 그래서, 모든 함수가 먼저오고 주어진 코드가 온 다음 초기화됩니다. –