【问题标题】:Attempting to add a loading gif while a method is running using ruby on rails UPDATED: using javascript now尝试在使用 ruby​​ on rails 运行方法时添加加载 gif 更新:现在使用 javascript
【发布时间】:2019-11-18 09:24:06
【问题描述】:

我目前正在尝试在方法运行时添加加载 gif,因为它需要几分钟才能运行。

我的 application.js 文件中有这个:

function showProgress() {
  $('.content').hide();
  $('.progress').show();
}

$(document).ready(function () {
  $('.progress').hide();       
  $('.btn-primary').on('click', showProgress);
});

在我的 html 文件中(显示我的控制器的文件) 我有:

<div class="content">
...
  <%= link_to 'Run Test', runTest_path, :class => "btn-primary", :method => :get%>
...
</div>


<div class="progress">
  <%= image_tag "loading2.gif"%>
</div>

它按预期工作,但它只在我第一次单击按钮运行该方法时工作,之后它不会显示 gif。此外,如果我在创建实例后没有立即单击运行该方法的按钮(因为它重定向到此显示页面)并转到 Web 应用程序的另一部分,那么当我返回此显示页面时会出现加载 gif 和只有当我刷新时才会消失。有什么建议吗?

【问题讨论】:

  • 使用javascript或action cable。您的方法没有任何意义,因为您的视图仅在操作完成后才呈现。

标签: ruby-on-rails ruby model-view-controller view gif


【解决方案1】:

正如评论所说,您可能希望使用 javascript 来执行此操作,因为它与页面加载等事件相关联。

这里是javascript

$(function() {
  $(document).on('ready', function() {
    $('.progress').css('display', 'none');
  });
});

在 HTML 中我有这个。页面加载后,我使用 javascript 将其隐藏(即上面的代码)。

<div class="progress">
  <%= image_tag "loading2.gif"%>
</div>

如果有帮助,这里是加载器类的 css,您应该可以根据需要进行调整。

.progress {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #1f1f1f;
  z-index: 99996;
  height: 100%;
  width: 100%;
  overflow: hidden !important;
}

【讨论】:

  • 对上面我写的javascript代码有什么建议吗?
  • 不,但我可以更新我的示例以解决您的 div 问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-10
  • 2020-11-06
  • 2012-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多