JavaScript의 타이머를 사용하는 내장함수인 setInterval(),clearInterval(), setTimeout()에 대해서 알아보자!
▶ setInterval (함수, 초)
각 호출 사이에 고정된 시간 지연으로 함수를 반복적으로 호출하거나 코드 스니펫을 실행 (주기적으로 인자를 실행하는 함수)
- setInterval() 함수는 어떤 코드를 일정한 시간 간격을 두고 반복해서 실행하고 싶을 때 사용한다.
- 첫번째 인자로 실행할 코드를 담고 있는 함수를 받고, 두번째 인자로 반복 주기를 밀리초(ms) 단위로 받는다.
- 간격(interval)을 고유하게 식별할 수 있는 interval ID를 반환(숫자값)하므로 나중에 clearInterval() (en-US) 함수를 호출하여 제거할 수 있다.
[예제]
- 간단예제
//Hello!라는 문자열을 콘솔에 3초에 1번씩 실행
1.
function test() {
console.log("Hello!");
}
setInterval(test, 3000);
******************************
2.
setInterval( () => console.log('Hello!'), 3000);
- 함수에 인자가 있을 경우
function test(string) {
console.log(string);
}
setInterval(function() {
test("Hello!");
}, 3000);
- 여러함수로 설정할 경우
function test1(string) {
console.log("test1 : " + string);
}
function test2(string) {
console.log("test2 : " + string);
}
setInterval(function() {
test1("Hello!");
test2("World!");
}, 3000);
//위와 같이 setInterval 함수 안에 함수를 인자로 넣고 실행하면 두개의 함수가 3초에 한번씩 실행됨
*** 결과 ****
test1 : Hello! test2 : World! test1 : Hello! test2 : World!
- 조건문 사용할 경우
function test(string) {
console.log(string);
}
setInterval(function() {
if("Y" == "Y" ) {
test("Hello!");
}
}, 3000);
▶clearInterval( intervalID )
이전에 설정된 시간 제한 반복 작업을 취소하는 함수
제공된 매개변수(intervalID=작업식별자)가 이전에 설정된 작업을 식별하지 않는 경우 이 메서드는 아무 작업도 수행하지 않는다.
[예제]
- 간단한 예제
var interval = setInterval(function() {
console.log("Interval");
}, 1000);
//인자로 함수 이름 넣어준다.
clearInterval(interval);
-응용 예제
var interval = setInterval(function() {
count++;
if (count === 10) {
clearInterval(interval);
}
}, 3000);
▶setTimeout(함수, 초)
일정시간이 지난 후 인자로 받은 함수를 한번 실행해주는 함수
- 첫번째 인자로 실행할 코드를 담고 있는 함수를 받고, 두번째 인자로 지연 시간을 밀리초(ms) 단위
- 함수 실행 후 return 값으로 상수를 리턴합니다(1). 함수 실행 때 마다 1씩 추가되어 리턴됨
- 타임아웃 아이디(Timeout ID)라고 불리는 숫자를 반환
[예제]
-간단 예제
setTimeout(() => console.log("3초 후에 실행됨"), 3000);
//5초 후에 oneTime이라는 string를 콘솔에 1번 찍고 종료
setTimeout(function() {
console.log("oneTime");
}, 5000);
self.scrollState = false;
if (!self.scrollState) {
self.mainElem.classList.add("running");
}
self.scrollState = setTimeout(function() {
self.mainElem.classList.remove("running");
}, 500);
//setTimeout이 실행되면 상수를 리턴 함으로 true로 바뀐다.
-응용예제
function add(x, y) {
console.log(x + y);
}
setTimeout(add, 2000, 3, 4);
************
결과 : 7
728x90
'Spring > JavaScript+Jsp(HTMl)' 카테고리의 다른 글
[ javascript ] onclick, location.href, window.open으로 팝업/새창 띄우기 (0) | 2023.08.31 |
---|---|
[JavaScript] href post 방식으로 전송하여 페이지 이동 방법 (0) | 2023.08.09 |
[js/css] 수정/배포로 파일 업데이트시 캐시 방지 및 강력 새로고침(캐시 초기화) 방법 (0) | 2023.06.02 |
[JavaScript] session 세션 사용방법 (sessionStorage) (0) | 2023.04.20 |
[JavaScript/JQuery] Top(맨 위) & Bottom(맨 아래) 스크롤 공통 기능 만들기 (0) | 2023.04.07 |
댓글