どの javascript コード (ファイル名と正確な行) が特定の ajax 呼び出しを起動したかを調べる簡単な方法はありますか?
firebug を使用すると ajax 呼び出しを見つけることができますが、正確な行をすばやく見つけるとデバッグに役立ちます
助けてくれてありがとう
どの javascript コード (ファイル名と正確な行) が特定の ajax 呼び出しを起動したかを調べる簡単な方法はありますか?
firebug を使用すると ajax 呼び出しを見つけることができますが、正確な行をすばやく見つけるとデバッグに役立ちます
助けてくれてありがとう
Firebug では、コンソール パネルのソース リンクをクリックすることができます。
または、Net パネルでブレークポイントを設定します。
この ajax 呼び出しの時点でコードにブレークポイントを配置すると、デバッガーは関数呼び出しのスタックを表示します。
Chrome 開発者ツールのドキュメントからこれを参照してください。
私はきれいな方法を本当に知りません(おそらく存在するかもしれません)。しかし、私は提案するちょっとしたハックがあります。
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
});
以上です。
注意: リクエストが開始時に開始された場合:
私が通常行うことは、次の束を追加することです。
console.log("message that explains where in the code I am now...");
ただし、console.logは古いバージョンのIEで問題を引き起こす可能性があるため、本番環境に移行するときにすべてのconsole.log呼び出しを削除する必要があることに注意してください。