원본 js 초시계 구현 코드

2692 단어
html 코드:
 
  















js代码:
 
  
/*
*@author:hyjiacan
*date:15:57 2010-9-5
*name:timer
*/
var ctrl = document.getElementById("ctrl"); //
var timer = document.getElementById("timer"); //
var hour, minute, second; // , ,
var t; //setTimeout
//
var init = function(){
timer.innerHTML = "00:00:00"; // FF innerText, innerHTML
hour = minute = second = 0; //
ctrl.setAttribute("value", " "); //
ctrl.setAttribute("onclick", "startit()"); //
clearTimeout(t);
}
//
function startit(){
t = setTimeout("startit()", 1000); // 1 (1000 )
second++;
if(second>=60){ // 60,
second = 0;
minute++;
}
if(minute>=60){ // 60,
minute = 0;
hour++;
}
timer.innerHTML = j(hour) + ":" + j(minute) + ":" + j(second) ; //
//
ctrl.setAttribute("value", " / "); //
ctrl.setAttribute("onclick", "pause()"); //
}
// , 0-9 , 0; :1:0:4, 01:00:04
var j = function(arg){
return arg>=10 ? arg : "0" + arg;
}
//
var pause = function(){
clearTimeout(t);
ctrl.setAttribute("onclick", "startit()");
ctrl.setAttribute("value", " ");
}

setTimeout 재귀속 처리를 사용합니다.그 중에서 중요한 문제가 하나 있는데 그것이 바로 지연이다. 이런 방법은 시스템 CPU 자원과 매우 큰 관계가 있고 함수의 호출도 시간을 소모해야 하기 때문에 결국 계수의 오차가 점점 커진다.
또 다른 방법이 있다.
시작 버튼을 눌렀을 때 눌린 시간(밀리초)을 기록한 다음 1초에 한 번씩 현재 시간을 읽고 현재 시간에서 눌렀을 때 기록한 시간을 빼고 지나간 시간을 계산한다.

좋은 웹페이지 즐겨찾기