gpt4 book ai didi

r - 仅在 Shiny 应用不忙时激活 actionButton

转载 作者:行者123 更新时间:2023-12-05 08:27:45 26 4
gpt4 key购买 nike

我的网页中有一个 actionButton() 可以进行一些计算,它会在 20 或 30 秒后完成。

有没有办法在应用程序运行时禁用按钮?或者任何其他方法也可能很有趣。我问这个是因为我的应用程序的一些用户双击 actionButton 并且我可以在服务器中看到计算运行了两次。

谢谢!

最佳答案

您可以在几乎所有具有 shinyjs 包功能的输入上使用禁用功能。下面我创建了一些密集的操作,并且在生成表格时按钮将停用,因此除非首先生成输出,否则用户不能多次按下它。

rm(list = ls())
library(shiny)
library(DT)
library(shinyjs)

ui =fluidPage(
useShinyjs(),
sidebarPanel(
sliderInput("numbers", "Number of records", 1000000, 5000000, 1000000, sep = ""),
actionButton("goButton","GO")
),
mainPanel(DT::dataTableOutput('table'))
)

server = function(input, output, session){

My_Data<-reactive({
if (is.null(input$goButton) || input$goButton == 0){return()}
isolate({
input$goButton
# Disable a button
disable("goButton")
# below is your intensive operation
a <- round(rnorm(input$numbers),2)
b <- round(rnorm(input$numbers),2)
# Enable a button again
enable("goButton")
data.frame("a" = a, "b" = b)
})
})

output$table <- DT::renderDataTable(withProgress(datatable(My_Data(),options = list(searching = FALSE,pageLength = 10,lengthMenu = c(5,10, 50))),message = "Generating Data"))
}
runApp(list(ui = ui, server = server))

关于r - 仅在 Shiny 应用不忙时激活 actionButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32606090/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com