我有以下导致Internet Explorer冻结的代码。这是一个涉及将学生成绩作为作业进行处理的项目:

var array1 = StudentGradeAreadHugeList();

var nextArrayItem = function() {
    var grade = array1.pop();

    if (grade) {
        nextArrayItem();
    }
};


我希望你能帮助我。

最佳答案

您可以显示有关您要执行的应用程序的更多信息。但是我相信这是堆栈溢出的问题(也许您使用的是一个很大的列表)。因此,要克服这一点,您应该修改“ nextArrayItem”:

window.setTimeout (nextArrayItem, 0)

冻结主要是由大数据引起的,但是现在事件循环将处理递归过程,而不是您的调用堆栈。

09-25 22:11