我有一个单一的页面JavaScript应用程序(使用JavascriptMvc完成)和后端与REST服务构建在ASP.NET MVC3之上(使用NServiceMVC完成)。
REST服务已安装并运行MiniProfiler,X-MiniProfiler-Ids标头随每个AJAX请求一起回来。我实际上有运行和工作的微型计算机,但我找不到任何信息,所以我不知道我是否正确的做法。
我目前正在做的是这样的:
在HTML应用程序(这是静态代码,没有动态的东西),我有:
<script type="text/javascript" src="/api/profiler"></script>
在我的MVC应用程序中,我有:
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参数在这里也是非常有用的,所以清除按钮显示,因为否则你只需要一个常量的操作列表,因为整个页面基本上不会刷新。
这是否是“正确”的做法,还是有更好的方法?