768 Stimmen

Fehler beim Überschreiten der maximalen Aufrufstapelgröße

Ich verwende eine Direct Web Remoting (DWR) JavaScript-Bibliotheksdatei und erhalte nur in Safari (Desktop und iPad) einen Fehler

Dort heißt es

Maximale Größe des Aufrufstapels überschritten.

Was genau bedeutet dieser Fehler, und wird die Verarbeitung vollständig abgebrochen?

Auch eine Lösung für Safari Browser (eigentlich auf der iPad Safari heißt es

JS:execution exceeded timeout

Ich nehme an, dass es sich dabei um dasselbe Problem mit dem Aufrufstapel handelt.)

4 Stimmen

Ich bekam diesen Fehler, als ich versuchte, Variablen (ohne sie zu deklarieren) zu senden, durch data in Ajax. Der Fehler wurde durch Deklaration der Variablen behoben.

0 Stimmen

Endlosschleife ...

0 Stimmen

Bei mir war der Name meiner JavaScript-Funktion onclick() und ich bekam diesen Fehler :-) Dies sind zwar reservierte Namen

2voto

Akshay Chavan Punkte 49

Das Problem könnte auf rekursive Aufrufe ohne eine Basisbedingung für die Beendigung zurückzuführen sein.

Wie in meinem Fall, wenn Sie den unten stehenden Code sehen, hatte ich den gleichen Namen für die API-Aufruf-Methode und die Methode, die ich verwendet, um Operationen nach diesem API-Aufruf durchzuführen.

const getData = async () => {
try {
  const response = await getData(props.convID);
  console.log("response", response);
 } catch (err) {
  console.log("****Error****", err);
}
};

Die Lösung besteht also im Wesentlichen darin, dass diesen rekursiven Aufruf entfernen .

2voto

Baz Guvenkaya Punkte 1400

In meinem Fall wurden zwei jQuery-Modale übereinander gestapelt angezeigt. Das zu verhindern, hat mein Problem gelöst.

2voto

Kihats Punkte 2898
dtTable.dataTable({
    sDom: "<'row'<'col-sm-6'l><'col-sm-6'f>r>t<'row'<'col-sm-6'i><'col-sm-6'p>>",
    "processing": true,
    "serverSide": true,
    "order": [[6, "desc"]],
    "columnDefs": [
        {className: "text-right", "targets": [2, 3, 4, 5]}
    ],
    "ajax": {
        "url": "/dt",
        "data": function (d) {
            d.loanRef = loanRef;
        }
    },
    "fnRowCallback": function (nRow, aData, iDisplayIndex, iDisplayIndexFull) {
        var editButton = '';
        // The number of columns to display in the datatable
        var cols = 8;
        // Th row element's ID
        var id = aData[(cols - 1)];
    }
});

In der data Funktion oben habe ich denselben Namen verwendet d.loanRef = loanRef aber keine Variable erstellt hatte loanRef also rekursiv sich selbst deklarieren.

Lösung: Erklären Sie eine loanRef oder besser noch, verwenden Sie einen anderen Namen als den, den Sie in d.loanRef .

2voto

ReemRashwan Punkte 151

Für mich als TypeScript-Anfänger war es ein Problem im Getter und Setter von _var1 .

class Point2{

    constructor(private _var1?: number, private y?: number){}

    set var1(num: number){
        this._var1 = num  // problem was here, it was this.var1 = num
    }
    get var1(){
        return this._var1 // this was return this.var1
    }
}

2voto

onmyway133 Punkte 42296

Prüfen Sie, ob Sie eine Funktion haben, die sich selbst aufruft. Zum Beispiel

export default class DateUtils {
  static now = (): Date => {
    return DateUtils.now()
  }
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X