javascript - Rails:在 1 个动作中多次更新视图
问题描述
我正在开发一个 Ruby on Rails (5.2) 项目。我对细节有点含糊,因为我正在寻找更多的理论答案,或者关于如何解决这个问题的建议,而不是具体的解决方案。在这个项目中,我有一个按钮可以启动控制器操作。在同一视图中还有一个字段显示我要修改的“状态”。
理想情况下,一旦单击按钮,就会调用下面的控制器操作。(假设执行的代码需要时间(~10 秒)并且不能放在后台作业中。)在函数执行的不同点,我想修改视图中的 DOM 元素。
class x_Controller < ApplicationController
def function_x
...
# execute some code
...
( call JS function here w/ msg = 'step 1')
...
# execute some code
...
( call JS function here w/ msg = 'step 2')
...
# execute some code
...
( call JS function here w/ msg = 'step 3')
end
end
我要调用的 JS 函数只是修改了一个 DOM 元素。
function start_loading_bar(msg) {
$('.progress-message').text(msg + "...")
$('#progress').fadeIn()
}
从用户的角度来看,一旦点击按钮,底部就会弹出一个状态栏。在执行的不同点,状态栏显示的消息将从“第 1 步”变为“第 2 步”到“第 3 步”,而无需用户进行任何额外输入。
我已经尝试了多种方法来解决这个问题。
最初我只是将函数绑定到按钮的 onclick,但是,这个方法不允许我在之后修改它,因为 onclick 只是在开始时触发一次。
接下来,我尝试制作一个包含我想要修改的 DOM 元素的部分,并在控制器操作中使用不同的参数呈现它。但是,您不能在单个操作中拥有多个 redirect_to / render 并且我遇到了错误。
我想知道这是否有可能做到?我是否正确地解决了这个问题?我是否忽略了更好的实现?
解决方案
推荐阅读
- python - 来自hdf文件python的纬度,经度信息
- firebase - 我如何使用统一从 Firebase 发送短信
- php - XAMPP 和 Interbase:在 Windows 10 上调用未定义的函数 base_connect()
- elasticsearch - Elasticsearch:未知字段 [min_doc_count]
- java - 斯坦福 coreNLP 情感分析调试需要太多时间
- c# - 检查任务是否正在等待或忙碌
- python - 无法加载图表。将图加载到 igraph(来自任意源)“返回 NULL”
- javascript - 为一行中的相同值分配两个不同选择器的两个不同属性?
- python - 使用 XLRD 模块在导入的 excel 文件中搜索字符串
- python - 张量流中的权重和偏差初始化