我是 JavaScript/jQuery 的完全新手,我相信这是一个非常简单的问题;但是我无法完成它。
我有一个异步任务正在执行(由sidekiq
),它的进度可通过模型(percentage_complete
)中的一个方法获得,该方法从 Redis 检索其进度。
我想在模型show
视图中显示一个进度条,并且我希望它使用 AJAX 每 x 秒更新一次。
进度条在show.html.erb
文件上显示如下:
<div class="progress">
<div class="bar" style="width: <%= @model.percentage_complete %>%;"></div>
</div>
如何设置 jQuery 脚本以异步更新此属性?
编辑
我也有:status
一个设置做的属性"done"
一个在任务完成时发生这种情况时,我想停止更新。
通过阅读我的问题,我似乎什么都没尝试,只是希望有人为我编写代码。让我添加一些评论:
- 我知道我应该
setInterval
每隔“x”秒使用一次更新属性 - 我知道我应该使用
$('.progress .bar').width(<%= @model.percentage_complete %>%)
来设置新的百分比
但是,由于我不熟悉 jQuery 和 JavaScript,特别是在 Rails 中,我不确定该脚本是否应该加载到视图中,或者它是否应该是视图本身。