Иногда невозможно оценить время выполнения. В этих случаях было бы полезно иметь либо радиальный индикатор прогресса, либо движущуюся заштрихованную полосу.
https://groups.google.com/d/msg/shiny-discuss/a3TcQ2C_hS0/3H4zocpRD0AJ
Другая возможность - просто сделать полоски более заметными и установить значение прогресса равным 1:
server <- function(input, output) {
output$plot <- renderPlot({
input$goPlot # Re-run when button is clicked
dat <- data.frame(x = rnorm(10), y = rnorm(10))
withProgress(message = 'Making plot', value = 1, {
Sys.sleep(20)
})
plot(dat$x, dat$y)
})
}
ui <- shinyUI(basicPage(
tags$head(tags$style(HTML("
.progress-striped .bar {
background-color: #149bdf;
background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.6)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.6)), color-stop(0.75, rgba(255, 255, 255, 0.6)), color-stop(0.75, transparent), to(transparent));
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.6) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.6) 50%, rgba(255, 255, 255, 0.6) 75%, transparent 75%, transparent);
background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.6) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.6) 50%, rgba(255, 255, 255, 0.6) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.6) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.6) 50%, rgba(255, 255, 255, 0.6) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.6) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.6) 50%, rgba(255, 255, 255, 0.6) 75%, transparent 75%, transparent);
-webkit-background-size: 40px 40px;
-moz-background-size: 40px 40px;
-o-background-size: 40px 40px;
background-size: 40px 40px;
}
"))),
plotOutput('plot', width = "300px", height = "300px"),
actionButton('goPlot', 'Go plot')
))
shinyApp(ui = ui, server = server)
Я попытался воспользоваться приведенными выше предложениями ... но, похоже, это не сработало ...
Пожалуйста, смотрите ниже мою попытку, любая помощь будет очень признательна.
http://stackoverflow.com/questions/38339593/shiny-loading-bar-for-htmlwidgets
Можно ли еще что-нибудь подобное использовать? ...
Я думаю, вы могли бы использовать https://getbootstrap.com/docs/3.4/components/#progress -animated.
@ jcheng5 предложил активировать "неопределенный режим", установив value = NA
. Но учитывая, что это называется «анимированным», возможно, было бы более гибко добавить параметр animated
, и тогда вы могли бы сделать withProgress(..., value = 1, animate = TRUE)
Самый полезный комментарий
Другая возможность - просто сделать полоски более заметными и установить значение прогресса равным 1: