加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-3 – 如何使用MiniProfiler与单页Web应用程序/ REST

发布时间:2020-12-16 00:42:22 所属栏目:asp.Net 来源:网络整理
导读:我有一个单一的页面JavaScript应用程序(使用JavascriptMvc完成)和后端与REST服务构建在ASP.NET MVC3之上(使用NServiceMVC完成)。 REST服务已安装并运行MiniProfiler,X-MiniProfiler-Ids标头随每个AJAX请求一起回来。我实际上有运行和工作的微型计算机,但我
我有一个单一的页面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参数在这里也是非常有用的,所以清除按钮显示,因为否则你只需要一个常量的操作列表,因为整个页面基本上不会刷新。

这是否是“正确”的做法,还是有更好的方法?

解决方法

您的代码中有一个假设,@ MiniProfiler.RenderIncludes()使用javascript生成所有内容。虽然这可能是当前的有效假设,但这可能会改变。

为什么不完全避免这些黑客,并使用ajax请求加载分析器?在任一情况下,无论是ajax还是嵌入式脚本,通过回调插入分析器的行为会影响分析的结果。

<div id="profiler"></div>
<script type="text/javascript">
  $.load("#profiler","api/profiler");
</script>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读