我有理解问题,为什么我的代码可以正常工作:)
这是我的代码的一部分:
function updateForNextLecturer(current_id, all_lecturers, progressbar)
{
$.getJSON(
'/' + root + 'custom/ajax/update_timetable_lecturer.php?id=' + all_lecturers[current_id],
function(data)
{
if (data.successfull == 0) {
$.stickr({note: "Error occurred.", className: "classic error"});
throw new Error("error");
}
else {
percent = Math.round((current_id + 1) * 100.0 / all_lecturers.length);
progressbar.progressbar({value: percent});
if (current_id + 1 < all_lecturers.length)
updateForNextLecturer(current_id + 1, all_lecturers, progressbar);
else
$.stickr({note: "Success", className: "classic"});
}
}
);
}
此代码是更新所有讲师的时间表所必需的。请求是异步的,并且一个接一个地进行,因此网络服务器负载不重。
为了使请求一个接一个地进行,我需要使用递归回调(我想这是唯一的解决方案)。问题是 - 为什么它可以正常工作,难道没有像 PHP 那样的最大嵌套级别吗?在 PHP 中,您可能会收到以下错误
Fatal error: Maximum function nesting level of '100' reached, aborting!
我用数千个请求测试了这个函数,所以嵌套级别大约是数千个,但没有发生错误。那是因为 JavaScript 中根本没有嵌套限制,还是因为我什么都不懂?
提前致谢。