У меня есть одностраничное приложение 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, минипрофилер показывает его в углу.Использование параметра showControls:true
здесь также очень полезно, поэтому появляется кнопка очистки, потому что в противном случае вы просто получаете постоянный список действий, поскольку вся страница практически никогда не обновляется.
Это «правильный» способ сделать это или есть лучший способ?