원하는 시간 후에 알람을 해주는 타이머도 구현이 가능하고, 호출을 원하지 않을때에도 타이머를 통해 그 기능을 제거 할 수도 있다. 한번의 호출만을 할 수 도, 지정한 시간마다 호출할수도 있다.
setTimeout()과 clearTimeout()
setTimeout(callback, delay)
callback에는 함수가, delay에는 시간이 들어간다.delay에는 1/1000초 단위를 쓰며, 해당 시간 뒤에 매개변수 callback 함수가 호출된다. 예를들어
setTimeout(function(){
alert('1초 후 호출 된다.');
}, 1000);
위 코드를 실행하면 1초 후 alert()함수가 호출 된다. 이때 setTimeout() 함수는 고유의 index 값을 반환해주며, 함수를 생성할때 마다 1씩 증가한다.
clearTimeout(timerId)
위에서 함수가 생성될 때마다 index값을 반환한다고 했다. clearTimeout()은 함수의 매개변수인 timerId와 일치하는 값, 즉 일치하는 index값을 갖고있는 setTimeout()함수가 호출 되지 않도록 해주는 함수이다.
var timerId = setTimeout(function(){
alrert('1초 후 호출 된다.');
}, 1000);
clearTimeout(timerId);
아무일도 일어나지 않는다. 마찬가지로
var timerId = setTimeout(function(){
alert('3초 뒤에 호출됩니다.');
}, 3000);
var timerId2 = setTimeout(function(){
alert('5초 뒤에 호출됩니다.');
}, 5000);
clearTimeout(1);
첫번째 함수는 호출되지 않는다.
setInterval()과 clearInterval()
setInterval(callback, delay)
delay에 설정한 시간마다 callback함수를 호출하는 함수다. 이때도 위와 마찬가지로 setInterval() 함수를 생성할 때마다 1씩 증가하게 되는 고유 index값을 반환한다.
setInterval(function(){
alert('3초 마다 호출합니다.');
}, 3000);
3초마다 콜백함수가 호출되어 alert()가 실행된다.
clearInterval(timerId)
timerId와 일치하는 인덱스 값을 갖는 setInterval() 함수가 호출되지 않도록 한다.
var intervalId = setInterval(function(){
alert('3초 마다 호출합니다.');
}, 3000);
clearInterval(intervalId);
인덱스값 1이 반환되어 intervalId에 할당된다. clearInterval()함수의 인자값으로 넘겨주어 3초가 지나도 alert은 호출되지 않는다.
'STUDY > programing' 카테고리의 다른 글
li 개수에 따라 폭(width) 나누기 (0) | 2019.09.13 |
---|---|
PHP 이름 *표 마스킹하기 (익명처리) (0) | 2019.05.17 |
CSS로 모바일 버튼 눌림 표시/클릭 액션 스타일 (active 선택자 이용) (0) | 2019.05.09 |
자바스크립트, jQuery 의 기초 (변수, 함수, return, 객체, 프로퍼티 등) (0) | 2019.04.18 |
자바스크립트란? Javascript, JS가 뭐야 (0) | 2018.12.04 |
HTML5의 시맨틱 태그, 폼 태그 (1) | 2018.12.03 |