로드시 자체 화재가 발생하고 시스템이 기록한 모든 경고를 얻기 위해 재귀 적으로 30 초마다 호출하는 IIFE가 있습니다.jQuery IIFE, 요청시 삽입 하시겠습니까?
잘 작동합니다.
(function GetAlerts() {
setTimeout(function() {
$.ajax({ url: "?DO=getalertcount", success: function(data) {
//do DOM stuff with data
}, complete: GetAlerts });
}, 30000);
})();
알림 대기열에 쓰는 위젯을 중지하는 등의 작업을 수행합니다. 따라서 즉시 경고창이 나타나야합니다. 30 초 동안 기다리지 말고 발사하십시오.
(예 : 위젯의 클릭 이벤트를 중지로)그래서, 나는 행동의 핸들러에서 어떤 방식으로 필요에 따라이 GetAlerts()를 호출 할 (소켓과 롱 폴링으로 인해 서버 제약 옵션 없음) 적절한 방법 주문형 전화에 무엇
이 때문에 30 초 루프가 유지됩니다 (또는 온 디맨드 끼어 후 다시 시작하여)
- 여러 개의와 끝까지하지 않는 것이
setTimeout
루프 실행 - 코드 톤을 복제하지 않습니다. (성공한 부분에서 발생하는 DOM 요소가 많아서)
이름으로 함수를 호출하고 시간 초과 전역 변수로 변경하고 제한 시간을 멈추게되면 위의 사항 중 하나라도 실패하거나 전혀 호출하지 못했습니다.
우리는 보통 클로저가 아니라 IENFE라고 명명 된 함수 표현식을 즉시 호출합니다. – Bergi
@Bergi에게 감사드립니다. 저는 그것에 대한 약간의 연구를했고, 제가 가진 것을 더 잘 묘사한다고 생각하는'IIFE'를 보았습니다. 그러나 그것은 여전히 그 '시간 초과'안에 들어가는 더 좋은 대답으로 나를 인도하지는 못했다. – briansol
Ajax 요청이 현재 실행 중일 때 경고를 "요구"하면 어떻게 될까요? – Bergi