2

どの javascript コード (ファイル名と正確な行) が特定の ajax 呼び出しを起動したかを調べる簡単な方法はありますか?

firebug を使用すると ajax 呼び出しを見つけることができますが、正確な行をすばやく見つけるとデバッグに役立ちます

助けてくれてありがとう

4

4 に答える 4

3

Firebug では、コンソール パネルのソース リンクをクリックすることができます。

コンソール xhr ソース リンク

または、Net パネルでブレークポイントを設定します。

ネット xhr ブレークポイント

于 2013-01-10T20:22:01.700 に答える
2

この ajax 呼び出しの時点でコードにブレークポイントを配置すると、デバッガーは関数呼び出しのスタックを表示します。

Chrome 開発者ツールのドキュメントからこれを参照してください。

ここに画像の説明を入力

于 2013-01-09T08:16:03.530 に答える
0

私はきれいな方法を本当に知りません(おそらく存在するかもしれません)。しかし、私は提案するちょっとしたハックがあります。

Web ページで Prototype.js を使用していない場合は、コマンド ラインに次のコマンドを入力します (Firebug 1.11 を使用)。

window.old$ = $; // in case you're using a framework like jQuery
include("https://ajax.googleapis.com/ajax/libs/prototype/1.7.1.0/prototype.js"); // loads Prototype

コンソールに次のように出力されるはずです。prototype.js が適切に含まれています。

次に、古い「$」変数を復元するには、次のように入力します。

window.$ = window.old$;

Prototype がロードされたので、XMLHttpRequest.prototype.open 関数をラップして、コール スタックを取得できます (提案された dystroy のように)。

XMLHttpRequest.prototype.open = XMLHttpRequest.prototype.open.wrap(function(orig, ...args)
{
    console.log("trace for :"+args[1]); // prints the URL of the request
    console.trace(); // prints the stack trace
    orig.apply(null, args); // call the original function
});

以上です。

注意: リクエストが開始時に開始された場合:

  • スクリプト パネルで、Web ページの最初の JS 命令にブレークポイントを設定します。
  • コンソールパネルで上記のコマンドを実行します
  • スクリプトパネルに戻り、続行をクリックします
于 2013-01-10T18:26:57.743 に答える
-1

私が通常行うことは、次の束を追加することです。

console.log("message that explains where in the code I am now...");

ただし、console.logは古いバージョンのIEで問題を引き起こす可能性があるため、本番環境に移行するときにすべてのconsole.log呼び出しを削除する必要があることに注意してください。

于 2013-01-09T08:19:03.767 に答える