加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – Rails 4:为什么一种更快速渲染局部的方法呢?

发布时间:2020-12-17 04:16:31 所属栏目:百科 来源:网络整理
导读:我不确定这是否是Rails特定问题,因此我也将其标记为 ruby. 我通过部分渲染事件记录的集合.但是,我发现不同地呈现部分会导致严重的性能差异. 两个版本都使用完全相同的数据,唯一改变的是用于渲染部分的代码. 为什么heck是一个版本始终比另一个版本快4倍?让我
我不确定这是否是Rails特定问题,因此我也将其标记为 ruby.

我通过部分渲染事件记录的集合.但是,我发现不同地呈现部分会导致严重的性能差异.

两个版本都使用完全相同的数据,唯一改变的是用于渲染部分的代码.

为什么heck是一个版本始终比另一个版本快4倍?让我想知道我正在采取什么样的性能……

慢版(950ms总请求时间):

<% events.each do |event| %>
  <%= render partial: "events/event",locals: { event: event } %>
<% end %>

# Log output
Rendered events/_event.html.erb (1.1ms)
Rendered events/_event.html.erb (1.1ms) 
...

更快的版本(总请求时间250ms):

<%= render partial: "events/event",collection: events,as: :event %>

# Log output
Rendered events/_event.html.erb (58.7ms)

解决方法

例1:
您正在渲染部分x次(取决于事件).
这意味着你正在编译html x次(每次循环运行一次).这很慢

例2:您正在使用一组事件呈现一个部分html编译一次(因为只有一个部分).这很快

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读