2012-01-20 4 views
13

例えば、ボタンがクリックされたときにそのボタンをクリックすると、someFunction()を実行するJavascriptコードがあると思われます。 someFunction()がちょうど実行されたことを確認する方法があるのだろうかと思います。 Chromeでどの機能がリアルタイムで実行されているかを確認する方法はありますか?ChromeのインスペクタでJavascriptの機能(機能の名前)がリアルタイムで実行されるかどうかを確認する方法はありますか?

インスペクタでこのトリックを実行するのは[プロファイル]タブの場合、どの機能がリアルタイムでどのような機能を発揮しているかを正確にどのように示していますか?

EDIT 2012年1月21日12:太平洋36P:以下のブライアン・ニッケルのコメントからは、インスペクタのタイムライン]タブはリアルタイムで何が起こるかを確認する方法ですが、どのように実行される機能の名前を見ていますタイムライン?

+2

実際のリアルタイムは、あまりにも速いので、いくらか役に立たないでしょう。監視するコードに*ブレークポイント*を設定します。 – deceze

+2

私はタイムラインにリストされた個々の機能を見てきました。 –

+0

ブレークポイントを設定することができません。私のコードではなく、ブレークポイントを設定する場所がわからないからです。 hehe。それは私が把握しようとしているものです! @BrianNickel、タイムラインはこれについて話していますか? – trusktr

答えて

12

をこれら二つの記事を参照してくださいタイムラインとスクリプトの開発者ツールを使用して、この目標を達成できます。

  • 開発者ツールパネルを開き、タイムラインの下にある[レコード]を押して、アクティビティの追跡を開始します。
  • 興味のあるイベントをトリガー(例:ボタンをクリック)し、録画を停止します(または録画を続行しますが、収集するデータの量を認識します)。
  • [タイムライン]パネルに記録されている項目に注意してください。関連するイベントを探し、そのイベントのタイミングバーの左側にあるツイストの矢印をクリックします。これにより、そのイベントに関連する関数呼び出しが公開されます。
  • 関数呼び出しの右側にあるリンクをクリックすると、関連するJavaScriptが表示されます。 (関数名を要求しますが、イベントは無名関数に関連付けられている可能性があるので、常に名前は使用できないことに注意してください)
  • イベントハンドラ自体をステップ実行する場合は、ハンドラの宣言の後の行にブレークポイントを設定します(イベントハンドラの宣言が1行以上であると仮定します)。または、[スクリプト]パネルでイベントリスナーブレークポイントを展開し、適切なイベントタイプ(該当するイベントのタイムラインパネルにリストされているように)をオフにします。

縮小されたJavaScriptで問題が発生している場合(各行が長すぎるため)、ブレークポイントを挿入している場合は、この方法を使用してください。ここでヒントを紹介します:スクリプトパネルでスクリプトファイルを開いて、{}をクリックしてください。これにより、Pretty Printが有効になり、縮小されたコードが空白を追加することで読みやすくなります。これにより、より細分化したブレークポイントを挿入することができます。タイムラインパネルに戻ると、スクリプトリファレンス(例:jquery.min.js:3)には、白紙のない縮小されたものではなく、きれいに印刷された行番号が使用されるようになりました。

+0

私は、関数が見つかったコード行に移動します。ニース!私はこれが未完成のコードではうまくいくのが分かりますが、1行から3行のすべてを含むコードを縮小した場合、1行に複数の関数が定義されている可能性があります。私は今これが最高だと思う。行数だけでなく列数も追加すると便利です。例えば、 'jquery.min.js:3:56'は単に' jquery.min.js:3'よりも良いでしょう。 – trusktr

+1

実際、それを回避するためのトリックがあります。私の修正された答えを見てください。 – cheeken

+0

ああ、クール!確かにそれは正確にそれを行う方法です! – trusktr

0

使用できる優れたユーティリティがたくさんあります:console.trace();debuggerなど

+0

これは、コードを変更せずにどの関数がリアルタイムで呼び出されるかを見る方法を提供しません。 – trusktr

0
+0

面白いですが、私のコードは自分のコードではないので、コードのどの部分が特定のアクション(たとえばonclickなど)で実行されているかを調べようとしています。 2番目の記事のすべてのものはいいですが、ブレークポイントを設定するにはWHERE、監視する式はわかっていなければなりません。特定のイベント(クリックなど)が発生したときに実行される初期関数を確認する方法はありますか? – trusktr

関連する問題