使用Rails 3.2。假设我有以下观点:
<div class="content">
<div class="main">
<h1><%= @shop.name %></h1>
<p><%= @shop.description %></p>
</div>
<div class="sidebar">
<%= render 'teasers' %>
</div>
</div>
有没有办法先加载页面,然后再加载teasers
?原因是因为teasers
需要一些时间来查询(我已经优化了查询)。
答案 0 :(得分:4)
我个人有这种行为的预定义系统:
此(coffeescript)Javascript代码在每次呈现页面时执行:
$('.ajax_load').each (index, element) ->
e = $(element)
$.get e.data('url'), (data) =>
$(document).replace(e, data)
因此,我的页面中响应类“ajax_load”的每个元素实际上都是由ajax调用的,例如:
%div.ajax_load{ data: { url: users_path } }
这将首先显示一个带有类ajax_load的div,并将向users_path
发送请求并将div替换为响应的内容。
这是翻译的coffeescript:
$('.ajax_load').each(function(index, element) {
var e,
_this = this;
e = $(element);
return $.get(e.data('url'), function(data) {
return $(document).replace(e, data);
});
});
答案 1 :(得分:0)
如何从视图中删除部分青少年,最初只显示没有它的页面。然后使用javascript,对服务器进行AJAX调用。
您可以使用wiselinks来简化生活。