1

回答HTML 構造を確認してください。

コントローラーとアクションがあります。

public class HomeController
{
   private Stopwatch controller_action;
   public HomeController()
   {
        controller_action = new Stopwatch();
        controller_action.Start();
   }
   public ActionResult Cars(KendoDataSourceRequest request)
   {
      controller_action.Stop();
      System.Diagnostics.Debug.WriteLine(controller_action.Elapsed);
   }
}

ポップアップ ウィンドウからアクション Cars を呼び出します。

私のアクション: ポップアップを開いて 100 ミリ秒をキャッチします ポップアップを閉じて、ポップアップを開いて 200 ミリ秒をキャッチします...

そして、これを100ms、200、300...

終了コンストラクターの後と開始アクションの前に何が起こるかを確認するにはどうすればよいですか?

更新 miniProfiler を使用しました。結果は次のとおりです。

ここに画像の説明を入力

これはクロムのIE8とIE9だけです

4

3 に答える 3

1

MiniProfilerをチェックしてください。MVC への統合は非常に簡単で、アプリケーションの UI で直接、アクションと MVC が舞台裏で行っていることに関する優れた情報を提供します。

また、これを使用してカスタム プロファイリング メッセージを追加することもできます。このメッセージは、デバッグ中に自動的にオンになり、運用コードではオフにできます。

于 2013-04-03T16:46:09.367 に答える
0

まあ、Stopwatch.Stop() は Elapsed 間隔をリセットしません。したがって、ポップアップを閉じて再度開くと、最初の Start() 呼び出しから現在の時間差が得られるようです。

メソッドは次のようになります。

public ActionResult Cars(KendoDataSourceRequest request)
   {
      controller_action.Stop();
      System.Diagnostics.Debug.WriteLine(controller_action.Elapsed);
      controller_action.Restart();
   }
于 2013-04-03T16:52:25.430 に答える
0

.NET オープン ソースの MVC フレームワークではありませんか? ソースをダウンロードして調べることができます。

ただし、増加し続ける理由は、おそらく、コントローラーの単一のインスタンスが作成され、複数の要求に再利用されるためです。いや、構いません。

于 2013-04-03T16:43:15.083 に答える