这篇文章说以下代码会炸毁堆栈:
function fetchLatest() {
$.getJSON('/wait?id=' + last_seen, function(d) {
$.each(d, function() {
last_seen = parseInt(this.id, 10) + 1;
ul.prepend($('<li></li>').text(this.text));
});
fetchLatest();
});
}
客户端 JavaScript 只是使用 jQuery 的 getJSON 方法对简单的 URL 端点执行长轮询 递归地执行此操作可能是一个坏主意,因为它最终会破坏浏览器的 JavaScript 堆栈,但它在演示中运行良好。
这是真的吗?如果是这样,我们如何防止这种情况发生?