[javascript]타이머(timer)함수의 의미와 활용

자바스크립트의 타이머 함수에 대해서 알아보겠습니다.

 

여기에서 먼저 3가지 주요 function을 알아보겠습니다.

 

순번 선언 의미
1. setInterval() 일정 시간간격으로 특정 코드 실행
2. setTimeout() 일정 시간이 지난후 특정 코드를 딱 1번 실행
3. clearInterval() 실행중인 타이머(timer)함수를 정지

이렇게 3가지가 있는데요 실제 활용 예를 보겠습니다.

 

 

먼저 첫번째로 순번 1(setInterval())과 3(cearInterval())을 사용하여 간단한 초시계를 만들어보겠습니다.

시작, 중지, 초기화(0부터 다시시작)을 하는 버튼을 만들어주고 해당 초과 디스플레이되는 span태그도 하나 만들겠습니다.

 

<!doctype html>
<html lang="ko">
 <head>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<meta charset="UTF-8">
<title>Title</title>
<style>
.span_comm{
	font-size: 20px;
    font-weight: bold;
    margin-left: 11px;
}
</style>
<script>
$(document).ready(function() {

});
</script>

</head>
 <body>
  <input type="button" id="btn_start" value="시작">
  <input type="button" id="btn_pause" value="중지">
  <input type="button" id="btn_clear" value="초기화">
  <br>
  <span class="span_comm">초 : </span><span class="span_comm" id="span_sec">0</span>
 </body>
</html>

각 버튼에 onclick을 통해서 실제 활용 이벤트를 만들어보겠습니다.

<!doctype html>
<html lang="ko">
 <head>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<meta charset="UTF-8">
<title>Title</title>
<style>
.span_comm{
	font-size: 20px;
    font-weight: bold;
    margin-left: 11px;
}
</style>
<script>

$(document).ready(function() {
	var timer;
	//시작
	$('#btn_start').click(function(){
		timer = setInterval(function(){
		var timer_sec  = Number($("#span_sec").text());
		$("#span_sec").text(timer_sec+1);
		},1000);
	});

	//중지
	$('#btn_pause').click(function(){
		clearInterval(timer);
	});

	//초기화
	$('#btn_clear').click(function(){
		$("#span_sec").text(0);
	});
});
</script>

</head>
 <body>
  <input type="button" id="btn_start" value="시작">
  <input type="button" id="btn_pause" value="중지">
  <input type="button" id="btn_clear" value="초기화">
  <br>
  <span class="span_comm">초 : </span><span class="span_comm" id="span_sec">0</span>
 </body>
</html>

jquery timer, jquery 타이머

위 이미지를 보시면 정상적으로 초시계가 1초마다 동작하는 것을 볼 수가 있습니다ㅎㅎ

위 소스상에 제가 봤을 때 유의해야하는 내용은 3개정도이지 않을까싶습니다.

 

1. timer을 전역변수로 사용하여 다른 버튼에서도 접근가능하게 하였다.

2. span태그의 값은 문자열로 인식되기 때문에 Number()를 통해서 숫자형 변수로 형변환

3. setInterval(실행구문, 간격미리세컨드)라는 것 입니다. (1000 = 1초)

 

 

마지막 2번째로는 setTimeout()을 통해서 딱 한번 실행되는 함수를 만들어보겠습니다.

setTimeout도 setInterval과 동일하게 setTimeout(실행구문, 간격미리세컨드)의 구조를 가지고 있습니다.

<!doctype html>
<html lang="ko">
 <head>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<meta charset="UTF-8">
<title>Title</title>
<style>
.span_comm{
	font-size: 20px;
    font-weight: bold;
    margin-left: 11px;
}
</style>
<script>

$(document).ready(function() {
	var timer;
	timer = setTimeout(function(){
	var timer_sec  = Number($("#span_sec").text());
	$("#span_sec").text(timer_sec+1);
	},1000);
});
</script>

</head>
 <body>
  <span class="span_comm">초 : </span><span class="span_comm" id="span_sec">0</span>
 </body>
</html>

타이머 setTimeout

위 예제는 버튼 없이 화면이 준비됨가 동시에 1초뒤에 0에서 1로 넘어가고 정지됩니다.

댓글

Designed by JB FACTORY