0

我正在调用一个 api,结果加载大约需要 15-20 秒,所以我想显示一个加载 gif,例如直到它们加载。

我有一个简单的表单,可以发出请求,然后将我重定向到相关操作

<%= form_tag results_path, :method => "get" do %>
<%= text_field_tag 'search', nil, :placeholder => "Enter Email Address here...." %>
<%= submit_tag 'Search' %>

在呈现结果之前,如何将图像添加到 results_path?

我可以在表单本身内执行此操作还是它是 Jquery/Javascript 的一部分

谢谢

4

3 回答 3

5

根据Rails 3: Remote links and Forms,您可以这样做

  • 添加:remote => true到您的form_tag
  • 将以下内容添加到您的 JS
$('SEARCH-BUTTON').bind('ajax:loading', function(){
  $('LOADING-GIF').show();
});

$('SEARCH-BUTTON').bind('ajax:complete', function(){
  $('LOADING-GIF').hide();
  // add what you like here
});

我没有测试过它,但我认为它可以解决问题。

于 2013-01-24T13:23:47.457 回答
1

这将禁用带有微调器的按钮,直到收到响应。

<%= button_tag "Search", class: "btn btn-default", 'data-disable-with' => "<i class='fa fa-spinner fa-spin'></i>".html_safe %>
于 2016-10-11T13:04:05.990 回答
0

您可以通过异步调用 api 来做到这一点。我不知道如何在 ruby​​ 中做到这一点,但这是一般的想法。该 api 将在后台调用,直到那时您的加载图标将被显示。完全获取 api 后,您可以删除加载图标。

于 2013-01-24T12:36:50.843 回答