for문 안에 함수를 호출 하고 싶을 때.
단 조건은!!!!!!
1초에 한번 같은, 이런 식으로 일정 시간 간격으로 호출 하고 싶을 때가 있다.
나같은 경우, for문 안에 함수를 호출하는데 이것이 ajax 통신하는 함수였다. 그런데 for문으로 보이지않게(?) 빠르게 함수를 호출하다보니 ajax통신이 꼬여(?) 버리는 문제 발생
이때 해결 방법
1) for문을 쓰지 않는다
setInterval()함수 사용
위의 글에 해당하는 답은 이것뿐..
* php site에서 어떤 분의 질문
for(i=0; i<=50; i++) {
//실행문
}
위의 for문은 순식간에 50번 쫙 돌아버리는데
setInterval은 함수를 돌리는거라 for문 안에 사용 할 수가 없는 걸로 압니다
setInterval 말고 아래처럼 1초간격을 두고 돌아가게 할 방법이 있을까요?
for(i=0; i<20; i++) {
//실행문
//1초쉼
}
이에 답변들
자바스크립트는 쉬는건 불가능합니다.
다만 다른 함수로 분리해서 함수 자체가 일정시간 이후에 실행하는건 가능하죠
--------------------------
for(i=0; i<=50; i++) {
//반복할 실행문
}
//이후 실행문
--------------------------
이런상황이라고 가정하면
--------------------------
var i=0;
var it = setInterval(function(){
if(i++ < 50){
//반복할 실행문
}else{
clearInterval(it);
//이후 실행문
}
}, 1000);
2) 재귀함수 사용
ajax통신에서 데이터가 받아져오면 (sucess) 다시 해당 함수 호출. (통신을 동기식으로 설정..)
더이상 불러올 데이터가 없을 때 return;
'공부 > Java Script' 카테고리의 다른 글
php와 javascript로 환율 표 만들기 (야후 환율API) (0) | 2017.09.13 |
---|---|
PC인지 모바일인지 테블릿인지 체크하는 스크립트 (0) | 2016.06.02 |
달력형식 정규화 설정 (0) | 2016.02.26 |
window.open 옵션 (0) | 2016.01.13 |
선택된 SelectBox Option 값과 텍스트 가져오기 (value, text) (0) | 2015.11.06 |