我正在显示3k用户。当渲染帮助程序link_to处理渲染速度变慢时。这需要很多时间。
这是我的模板
- @user.each do |user|
%tr
%td= link_to_user_modal user
%td.text-right
= link_to edit_user_path(user.id),
class: 'btn btn-default btn-xs',
title: 'Edit' do
%span.glyphicon.glyphicon-pencil
= link_to user,
method: :delete,
title: 'Delete',
data: { confirm: "Are you sure you want to delete #{user}?" },
class: "btn btn-danger btn-xs" do
%span.glyphicon.glyphicon-trash
答案 0 :(得分:2)
渲染普通的html而不是使用帮助器可以大大提高渲染所需的时间。 它没有那么多" link_to"这会给渲染带来负担,但更多的是path_helper。虽然在视图中放置原始html比以往任何一个都快:
this.selectedDate['date'] = new Date(this.selectedDate['pristine']);
而不是
<a href="the/path/the_helper/would/render/#{user.id}" target="_blank" class="whatever">Edit</a>
甚至(因为助手是最大的罪魁祸首)
link_to path_helper
我还使用路径助手使用href测试了标记,虽然它比使用路径助手的link_to快,但它比使用href作为字符串慢。您还可以看到我没有在标记的href上调用.html_safe,这样也可以在标记中更快地呈现它。