10 Stimmen

Komplexes JavaScript. Was hat mich aufgerufen?

Das Projekt, an dem ich arbeite, verwendet jQuery.

Es werden eine Reihe von Ajax-Aufrufen gemacht, die andere HTML-Fragmente mit der load() Methode laden, die wiederum andere Fragmente laden. Das Ganze ist verwirrend. Ich habe den Code nicht geschrieben.

Gibt es ein Tool, mit dem ich den Callstack durchlaufen kann, um herauszufinden, welcher Methode aufgerufen wird? Gibt es irgendwelche Browser-Tools, die mir dabei helfen könnten, das herauszufinden?

Lösung:
Letztendlich lag das daran, dass ein <pre><code>$.ajaxSetup({ async: false }); </code></pre></x-turndown>

0 Stimmen

Javascript debuggen macht so viel Spaß, oder? Ich kenne keine Tools, die es dir ermöglichen, den Stack zu überwachen und Breakpoints hinzuzufügen, um Sachen zu überprüfen. Der beste Debugger, den ich für JS benutzt habe, ist Firebug: addons.mozilla.org/de/firefox/addon/1843

0 Stimmen

@Jay, ich benutze VS2008 und setze ständig JS-Code Unterbrechungspunkte.

1 Stimmen

Beachten Sie, dass Ajax-Methoden aufgrund ihrer asynchronen Natur schwer zu debuggen sind - die zurückkehrenden Aufrufe erfolgen nicht auf demselben Stapel wie die aufrufenden Aufrufe.

8voto

Robert Harvey Punkte 173098

Firebug ist dazu in der Lage.

Wenn der Debugger angehalten ist, zeigt Firebug Ihnen den Aufrufstapel, der die verschachtelten Funktionsaufrufe darstellt, die derzeit ausgeführt werden und darauf warten, zurückzukehren.

Der Aufrufstapel wird als kompakte Leiste von Schaltflächen in der Symbolleiste dargestellt, jede mit dem Namen einer Funktion im Stapel. Sie können auf eine beliebige Schaltfläche klicken, um zur Zeile zu springen, an der diese Funktion angehalten ist, und die lokalen Variablen innerhalb dieser Funktion ansehen.

7voto

leepowers Punkte 36580

Chrome hat auch einen ziemlich fiesen Debugger eingebaut unter Entwickler-Tools, keine Add-Ons/Erweiterungen erforderlich.

1voto

kinet Punkte 1780

+1 für Firebug. Sie können den Debugger anhalten, um den Aufrufstapel durchzugehen http://getfirebug.com/javascript

1voto

jeanreis Punkte 886

Sie könnten auch versuchen, Opera's Dragonfly auszuprobieren (verfügbar in jeder aktuellen Opera-Version). Ich finde es weniger raffiniert als Firebug, aber einige Fehler sind unter ihm viel expliziter.

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