또 다른 요청을 보내 영원히 반복 응답 할 때 나는 서버에 비동기 AJAX 요청을 보내려면, 그리고 가정 해무한 루프
function sendXHR(url, callback) {
// Send XMLHttpRequest to server and call callback when response is received
}
function infinite() {
sendXHR('url/path', infinite);
}
infinite();
을 나는 우리가 부족할 것이라고 가정한다 스택 공간이 꽤 빨리, 그래서 어떻게 할 수 있습니까 (차단하지 않고)?
return
을 사용하는 대신 콜백을 전달하는 패턴은 특히 node.js
에서 많이 사용됩니다. 사람들이 무한 루프를 만드는 방법은 무엇입니까? 나는 대부분의 JS 엔진이 꼬리 호출 최적화를 수행한다고 생각하지 않는다.
이 부족하지 않을 것이라고를 스택 공간은 콜백이 호출 될 때 그 아래의 스택 프레임은 이전의'무한 (infinite) '호출 스택을 포함하지 않는다. –
@DanD. 나는'sendXHR'에'callback();'을 추가하여 Chrome에서 시도해 보았고 약 9500 회 반복 후에'최대 호출 스택 크기 초과 '를보고합니다. 파이어 폭스는 또한 '너무 많은 재귀'라고 말합니다. – Flash
그러면 XMLHttpRequest를 서버에 보내고 응답이 수신되면 콜백 콜을 할 수 있습니다. –