有没有办法在Rails 3.2中进行延迟加载?

时间:2014-09-25 02:26:21

标签: ruby-on-rails ruby ruby-on-rails-3.2

我已经建立,维护并不断改进一个疯狂复杂的梦幻足球联赛的网站我所在的地方,通用汽车每年有130美元的工资帽,球员都有起薪资金,可能签约使用长期交易初始工资金额作为后续年份的起点。

还有更多内容,但这足以满足我需要的信息。每个GM都有一个团队页面,显示他在团队中的所有球员/签署长期交易以及其他一些名单故障,历史支付信息,选秀名单(基本上是一个拖放可分类的“购物清单”的玩家到密切关注),待处理/已完成/拒绝的交易请求,以及私人消息以及许多其他信息:

(this is only PART of that Roster tab...there's far too much to fit into a single screenshot)

正如您可能想象的那样,这是为每个团队加载的INSANE信息量。升级到Ruby 2.1.2缓解了很多问题(页面加载时间平均从约7秒减少到约3秒),但还有更多问题可以解决。

有没有什么方法可以让我的93线团队#show action lazily加载?因此,例如,当转到团队页面时,名单和所有相关变量将加载,因为这是第一个/默认选项卡。但是,在他们的每个标签被激活之前,Payouts,Draft Rosters,Trades和Messages变量不会激活他们的查询来设置变量?我一直试图找到任何关于Rails延迟加载的东西,但是我没有找到任何东西,甚至远远接近我想做的事情。

1 个答案:

答案 0 :(得分:2)

您可以为每个标签创建一个控制器操作。

所以你有类似的东西。主页面是users#show操作。这将呈现主布局和tabpanel(带有名单标签)。

然后为每个标签创建一个操作。所以你会得到:users#payoutsusers#draft_rostersusers#trades users#mailbox

只有在第一次点击标签时,才能通过ajax加载这些操作:http://jqueryui.com/tabs/#ajax

每个标签都有自己的html.erb文件。此文件是页面的内容。

这样每个选项卡都有自己的实例变量,只有在单击选项卡时才会加载。