どの javascript コード (ファイル名と正確な行) が特定の ajax 呼び出しを起動したかを調べる簡単な方法はありますか?
firebug を使用すると ajax 呼び出しを見つけることができますが、正確な行をすばやく見つけるとデバッグに役立ちます
助けてくれてありがとう
どの javascript コード (ファイル名と正確な行) が特定の ajax 呼び出しを起動したかを調べる簡単な方法はありますか?
firebug を使用すると ajax 呼び出しを見つけることができますが、正確な行をすばやく見つけるとデバッグに役立ちます
助けてくれてありがとう
Firebug では、コンソール パネルのソース リンクをクリックすることができます。
または、Net パネルでブレークポイントを設定します。
私はきれいな方法を本当に知りません(おそらく存在するかもしれません)。しかし、私は提案するちょっとしたハックがあります。
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呼び出しを削除する必要があることに注意してください。