내 ASP.NET MVC 페이지에서 JavaScript/jQuery를 사용하여 매초마다 데이터베이스를 폴링합니다.JavaScript 타이머 재 입력 방지
이 노력하고 있지만 지연이있는 경우이를 반환하기 전에, 내 타이머 핸들러가 다시 호출되지 것입니다 있는지 확인하려면.
거기에서, 전역 변수에 타이머 ID를 저장 내 처리기에서 타이머를 삭제, 내 핸들러가 완료되면 그것을 다시 시작하는 것보다이 다른 어떤 트릭.참고 : 나는 두 번째가 자주 보이지만이 코드는 신용 카드 지불을 제출 한 후 내 서버를 폴링합니다. 일반적으로 1 초 정도만 실행되며 사용자가 필요 이상으로 오래 기다리는 것을 원하지 않습니다.
내가 결과를 얻을 때까지 계속 실행해야하거나 너무 오래 기다렸습니다. 'setTimeout'은 타겟을 한 번만 호출 한 다음 그 함수가 사용하는 내부 타이머를 지우는 것이 맞습니까? 다시 말해,이 함수를 사용할 수 있지만 핸들러가 호출 될 때마다'setTimeout'을 다시 호출해야합니다. –
@JonathanWood'setTimeout'은 아무 것도 지우지 않습니다. ** 한번 ** 함수를 실행해야하기 때문입니다. 반면에'setInterval'은 주어진 함수가 주기적으로 실행되도록합니다. 여전히 혼란스러워하는 경우 링크 된 문서를 읽으십시오. –