This function allows easily adding
waiters to dynamically rendered Shiny content where
"dynamic" means render*
and *output
function pair.
autoWaiter(id = NULL, html = NULL, color = NULL, image = "", fadeout = FALSE)
id | Vector of ids of elements to overlay the waiter.
If |
---|---|
html | HTML content of waiter, generally a spinner, see |
color | Background color of loading screen. |
image | Path to background image. |
fadeout | Use a fade out effect when the screen is removed. Can be a boolean, or a numeric indicating the number of milliseconds the effect should take. |
This will display the waiter when the element is being recalculated and hide it when it receives new data.
library(shiny) library(waiter) ui <- fluidPage( autoWaiter(), actionButton( "trigger", "Render" ), plotOutput("plot"), plotOutput("dom") ) server <- function(input, output){ output$plot <- renderPlot({ input$trigger Sys.sleep(3) plot(cars) }) output$dom <- renderPlot({ input$trigger Sys.sleep(5) plot(runif(100)) }) } if(interactive()) shinyApp(ui, server)