0

$.ajax と Controller アクションの間で何が起こるかをデバッグする方法を探しています。これらのストレッチの長さを確認する方法はありますか?また、それが発生する場所で遅延があるかどうかを確認する方法はありますか (ネットワークの場合、どこで?)?

4

1 に答える 1

0

問題を特定するために試すことができる1つのアプローチを次に示します。まったく新しいASP.NETMVCアプリケーションを起動し、いくつかの作業をシミュレートするコントローラーアクションを配置します。

public ActionResult SetSearchResults(SearchCriteria searchCriteria)
{
    Thread.Sleep(400);
    return Json(new { success = true });
}

そしてあなたはそれをAJAXで呼び出します:

$.ajax({
    contentType: 'application/json, charset=utf-8',
    type: "POST",
    url: '@Url.Action("SetSearchResults")',
    data: JSON.stringify({ }),
    cache: false,
    success: function (response) {
    }
});

次に、JavaScriptデバッグツールでAJAXリクエストが実行されるのにかかる時間を観察します(私はChrome開発者ツールバーを使用していますが、必要に応じてFireBugも使用できます)。

ここに画像の説明を入力してください

405ms。素晴らしい、この数字は誰も驚かないと思います。別の番号を取得すると、真剣に心配し始める可能性があります。しかし、私はあなたが別の番号を取得することはないと思います。したがって、問題はASP.NETMVCとAJAXのどちらからも発生しません。

それはベアボーンです。これで、スモーキングガンが見つかるまで、データベース呼び出しなどでコントローラーアクションを整形することにより、コントローラーアクションに実際の作業を追加し始めることができます。徐々に物事を追加します。リポジトリクラスを手動でインスタンス化することから始め、DIフレームワークを使用している場合は、後でそれを追加するなど...一度に1ステップずつ実行することが非常に重要です。

于 2012-07-21T07:42:25.063 に答える