개발/javascript

javascript 인터벌 setInterval 호출 스케쥴링

Yunikism 2023. 4. 25. 13:38
728x90

javascript 에서 어떠한 일정한 시간 간격으로 작업을 수행하고 싶을때

setInterval 을 사용해주면 된당

$(document).ready(function() {
  
setInterval(function(){
         console.log("뿌잉뿌잉~");
        }, 100);
}
 

 

이렇게 사용하면 log가 0.1초당 한번씩 찍힘

아시겠지만 100을 1000으로 수정하면 1초당 한번으로 찍힘


나는 이것을 왜 찾아봤냐?

안드로이드 앱 에서 input text에 값을 넣어주는 기능이 있는데 앱에서 직접 넣어주니 onchange change 등 이벤트가 걸리지 않아서 처리를 할 수 없는 상황이였음 ..

자바스크립트가 이니셜라이징 되기 전에 앱에서 input에 값을 넣어주면 문제가 되지않는데 항상 이니셜라이징이 끝나고 input에 값을 넣어줘서 문제

그래서 해결된 나의 코드

 

 
        var oldvalue = $('#input').val();
        var IslandPriceInterval = setInterval(function(){
            if ($('#input').val()!=oldvalue){
                console.log("실행될 내용~");

                //인터벌 종료
                clearInterval(IslandPriceInterval);
            }
        }, 100);

 

이러면 이니셜라이징 되면서 oldvalue 변수에 비어있는 input값을 저장하고 IslandPriceInterval 인터벌이 0.1초마다 실행이 된다.

실행이 되면 0.1초마다 oldvalue 와 input 값을 비교하여 값이 다를경우 원하는 작업을 수행해 줄 수 있다.

그리고 마지막에 clearInterval(IslandPriceInterval); 이렇게해주면 더이상 IslandPriceInterval 인터벌은 실행이 되지 않는다 ~ 

끄읏

 

'개발 > javascript' 카테고리의 다른 글

JavaScript NaN 체크 isNaN()  (0) 2023.04.25
[javascript] 쿠키 생성  (0) 2023.04.25
javaScript 웹에서 앱설치 유무 확인 [안드로이드]  (0) 2023.04.25