1

Using Rails 3.2. Let's say I have the following view:

<div class="content">
  <div class="main">
    <h1><%= @shop.name %></h1>
    <p><%= @shop.description %></p>
  </div>
  <div class="sidebar">
    <%= render 'teasers' %>
  </div>
</div>

Is there a way to just load the page first, then load the teasers later? Reason being so is because teasers takes some time to query (I have already optimized the query).

4

2 回答 2

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 替换为响应的内容。


这是翻译的咖啡脚本:

$('.ajax_load').each(function(index, element) {
  var e,
    _this = this;
  e = $(element);
  return $.get(e.data('url'), function(data) {
    return $(document).replace(e, data);
  });
});
于 2013-10-07T16:07:31.503 回答
0

如何从视图中删除部分预告片并最初只显示没有它的页面。然后使用 javascript,对服务器进行 AJAX 调用。

您可以使用wiselinks来简化您的生活。

于 2013-10-07T16:07:14.270 回答