2017-12-26 4 views
0

jQuery 타이머를 작성하려고하지만 브라우저가 집중되거나 최소화되지 않으면 중지됩니다. 내 생각 중 하나는 코드가 Ajax를 사용하여 서버에서 데이터를 지속적으로 가져 와서 타이머를 업데이트 할 수 있지만 내 관심은 서버의 부담을 증가시킬 수 있다는 것입니다. 사용자가 프론트 엔드에서 브라우저를 사용하는지 확인하는 방법이 있는지 궁금합니다. 코드가 사용자가 반환하면 Ajax 요청을 보내면됩니다.사용자가 브라우저를 사용하지 않는 경우 jQuery 타이머가 중지됩니다.

내 jQuery 타이머 코드 스 니펫.

(function timer (offset) { 
    setTimeout(function() { 
     var timestamp = {{ time }}; 
     timestamp = 5 * 60 - timestamp - offset; 
     var minutes = Math.floor(timestamp/60); 
     var seconds = Math.floor(timestamp % 60); 
     document.getElementById("timer").innerHTML = minutes + " : " + seconds; 
     timer(offset + 0.5); 
    }, 500); 
})(0); 
+0

[jquery.idle] (https://github.com/kidh0/jquery.idle)을 확인하실 수 있습니다 – Satpal

+0

경과 된 시간을 보여주는 타이머를 만드시겠습니까? – AuxTaco

+0

@AuxTaco 예, 남은 시간 표시. –

답변

1

window.setTimeoutdelay 매개 변수는 콜백이 실행되기 전에 not a guaranteed time 시간의 최소 양이다. 타임 아웃에서 경과 된 총 시간을 유지하는 대신 타이머가 시작된 시간을 저장하고 현재 시간과 비교하십시오. Performance.now()은 밀리 초 단위로 측정되는 정확한 타임 스탬프를 제공합니다.

관련 문제