如何在Ajax调用中使用rack-mini-profiler?

4
我成功地让 rack-mini-profiler gem 在我们应用程序提供的完整页面上运行良好。但我没有成功解决的问题是,如何直接获取我们通过 ajax 提供给另一个页面的调用数据。我发现,如果我进行 ajax 调用,然后调用我们的完整页面请求之一,我也可以看到 ajax 的时间,但这种方法有点麻烦。
你有什么提示可以在 ajax 调用所在的页面上直接查看小菜单吗?我们的 ajax 调用返回 html,并且有足够的空间显示菜单。

我现在正在研究这个问题。分解一下,我认为我们需要将分析器参数附加到您的AJAX调用中(或默认打开分析器),然后确保您的响应模板包括配置文件数据。然后必要时将其传递给渲染函数。 - Rich Seviora
@RichSeviora 我也对分析 AJAX 请求很感兴趣。看起来我的 AJAX 请求中已经使用了默认的 gem 设置,有一些迷你分析器头文件。我想知道是否只需要实现您的最后一个建议:“然后确保您的响应模板包含分析数据。如果需要,再将其传递给渲染函数。”我打算尝试一下并研究一下这个问题。我敢打赌响应中没有分析数据,因为我的 API 控制器是 ActionController::API 的子类,而不是 ActionController::Base,这可能是 gem 钩子的作用对象。 - RudyOnRails
2个回答

3

非常抱歉我之前回答您的问题时没有直接回答。但是,我强烈推荐使用Chrome扩展程序(以及相关宝石)Rails Panel,特别是用于在Rails中调查Ajax / Async调用。

我每天工作都会使用它,并发现它是一个很棒的工具。


1
感谢您指引我使用Rails Panel。我认为需要强调的是,Rails Panel和rack-mini-profiler之间可能存在一个区别,即mini-profiler具有执行内存分析的能力,而Rails Panel则没有。 - Marklar

0
一旦您将rack-miniprofiler添加到您的bundle中,那么您需要设置disable_caching = true。您可以在初始化程序中完成此操作:
# config/initializers/rack_profiler.rb
if Rails.env.development?
  Rack::MiniProfiler.config.disable_caching = true
end

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接