我最近将我的一个应用更新为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
我使用Sphinx
和ThinkingSphinx
进行搜索。点击链接后,我得到一个不寻常的长时间" 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控制台检查了它。见下图:
答案 0 :(得分:1)
问题似乎出现在我的内联Javascript
中,我的部分形式(_form.html.haml
)。此表单在大多数页面上呈现,因为它放在Bootstrap模式窗口中,可以在任何地方显示。在此部分中,我执行了一些Javascript
和Ajax
调用。每次呈现表单时,我都使用Ajax
执行此操作:
:javascript
$(document).ready(function() {
$.ajax({
url: "#{update_idea_team_path}",
data: {
team_id : $('#select_idea_team').val()
},
dataType: "script"
});
出于某种原因,这似乎导致了上述问题中描述的问题。将Javascript和Ajax代码移动到.coffee.js
文件而不是将其呈现为内联解决了我的问题。