私は、JavascriptMvcを使ってシングルページのJavaScriptアプリケーションを作成し、ASP.NET MVC3の上にRESTサービスを組み込んだバックエンドを作成しました(NServiceMVCを使用)。シングルWebアプリケーション/ RESTバックエンドでMiniProfilerを使用するにはどうすればよいですか?
RESTサービスにはMiniProfilerがインストールされて実行されており、X-MiniProfiler-Idsヘッダーは各AJAXリクエストとともに返されます。私は実際にミニプロファイアを稼働させていますが、これについての情報は見つかりませんでした。したがって、私が正しい方法で行っているかどうかはわかりません。
これはサポートされているシナリオですか、これを行うには特別な方法がありますか?私は現在やっていることはこれです
:
(すべての静的コードで、動的なもの)HTMLアプリでは、私が持っている:私のMVCアプリで
<script type="text/javascript" src="/api/profiler"></script>
を、私が持っている:
public ActionResult Profiler()
{
if (!ControllerContext.HttpContext.IsDebuggingEnabled)
{
return new EmptyResult();
}
return new ContentResult() {
Content = StackExchange.Profiling.MiniProfiler.RenderIncludes(
position: RenderPosition.Right,
showControls: true
)
.ToString()
.Replace("<script type=\"text/javascript\">", "")
.Replace("</script>", "")
};
}
は明らかに、ハードコーディングさ<script>
タグを取り除くために、ここでのハックがあります。
これ以外のものは、MVC側から見ると、プロファイラはまったく同じように使用されます。アプリケーションでREST呼び出しが発生するアクションを実行すると、miniprofilerがそのコールをコーナーに表示します。 showControls:true
パラメータを使用すると、クリアボタンが表示されるので、ページ全体が本質的に更新されないので、アクションの定数リストを取得するだけでよいので、ここでも役立ちます。
これは「正しい」方法ですか、それとも良い方法ですか?
解決策はありますが、ベストプラクティスに従っていることを確認したいのですか? –
@KirkWollはい。プロファイラに関するドキュメントはあまりないので、既存の解決策を見落としているかどうかを知りたい。最悪の場合、この質問は将来のWeb検索のためのドキュメントを提供することができます。これが「最良の」方法であれば、私はおそらくパッチを提出して、私の '.replace()'ハックを行う必要はなく、これを実際の「公式」な方法にします。 – gregmac
私は同じ質問があります。あなたはまだこのようにしていますか? – Jerry