Rails 4.2 - 性能问题

时间:2014-12-24 10:43:43

标签: ruby-on-rails ruby performance ruby-on-rails-4

我最近将我的一个应用更新为Rails 4.2。在我的本地计算机上运行时,我注意到基本的显示操作的简单link_to有时需要很长时间才能完成。

这是链接:

= link_to team_members_path(@team) do
  Members

这是我的行动(在我的MembersController中):

def index

  @team = Team.find_by_id(params[:team_id])

  if params[:search].present?
    @members = Member.search ThinkingSphinx::Query.escape(params[:search]), :with => {:team_id => @team.id}, :page => params[:page], :per_page => 10
  else
    @members = Member.search params[:search], :with => {:team_id => @team.id}, :page => params[:page], :per_page => 10
  end
end

我使用SphinxThinkingSphinx进行搜索。点击链接后,我得到一个不寻常的长时间" log"在我的控制台中。

Started GET "/users/1" for ::1 at 2014-12-24 11:24:40 +0100
Processing by UsersController#show as JS
Parameters: {"id"=>"1"}
[renders stuff etc]

...

Started GET "/users/1" for ::1 at 2014-12-24 11:24:40 +0100
Processing by UsersController#show as JS
Parameters: {"id"=>"1"}
[renders stuff etc. with the same timestamp as above]

...

Started GET "/users/1" for ::1 at 2014-12-24 11:24:40 +0100
Processing by UsersController#show as JS
Parameters: {"id"=>"1"}
[renders stuff etc. with the same timestamp as above]

这个动作:Started GET "/users/1"似乎被多次调用,如上所示(比我上面粘贴的方式多),这似乎导致了非常糟糕的性能,即使在本地机器上运行也是如此。

而且我不太确定如何解决它或导致它的原因。有任何想法吗?

注意

在这种情况下,我实际上并不知道为什么会GET "/users/1"被调用。我没有链接到用户显示操作。

我使用Firefox控制台检查了它。见下图:

enter image description here

1 个答案:

答案 0 :(得分:1)

问题似乎出现在我的内联Javascript中,我的部分形式(_form.html.haml)。此表单在大多数页面上呈现,因为它放在Bootstrap模式窗口中,可以在任何地方显示。在此部分中,我执行了一些JavascriptAjax调用。每次呈现表单时,我都使用Ajax执行此操作:

:javascript
  $(document).ready(function() {

  $.ajax({
    url: "#{update_idea_team_path}",
    data: {
      team_id : $('#select_idea_team').val()
    },
    dataType: "script"
  });

出于某种原因,这似乎导致了上述问题中描述的问题。将Javascript和Ajax代码移动到.coffee.js文件而不是将其呈现为内联解决了我的问题。