Reports progress to the user during long-running operations.
Arguments
session
The Shiny session object, as provided by
shinyServer to the server function.
min
The value that represents the starting point of the
progress bar. Must be less tham max.
max
The value that represents the end of the progress bar.
Must be greater than min.
message
A single-element character vector; the message to be
displayed to the user, or NULL to hide the current message
(if any).
detail
A single-element character vector; the detail message
to be displayed to the user, or NULL to hide the current
detail message (if any). The detail message will be shown with a
de-emphasized appearance relative to message.
value
A numeric value at which to set
the progress bar, relative to min and max.
NULL hides the progress bar, if it is currently visible.
amount
Single-element numeric vector; the value at which to set
the progress bar, relative to min and max.
NULL hides the progress bar, if it is currently visible.
amount
For the inc() method, a numeric value to increment the
progress bar.
Details
This package exposes two distinct programming APIs for working with
progress. withProgress and setProgress
together provide a simple function-based interface, while the
Progress reference class provides an object-oriented API.
Instantiating a Progress object causes a progress panel to be
created, and it will be displayed the first time the set
method is called. Calling close will cause the progress panel
to be removed.
Methods
initialize(session, min = 0, max = 1)
Creates a new progress panel (but does not display it).
set(value = NULL, message = NULL, detail = NULL)
Updates the progress panel. When called the first time, the
progress panel is displayed.
inc(amount = 0.1, message = NULL, detail = NULL)
Like set, this updates the progress panel. The difference is
that inc increases the progress bar by amount, instead
of setting it to a specific value.
close()
Removes the progress panel. Future calls to set and
close will be ignored.
See Also
withProgress
Examples
## Not run:
# server.R
shinyServer(function(input, output, session) {
output$plot <- renderPlot({
progress <- shiny::Progress$new(session, min=1, max=15)
on.exit(progress$close())
progress$set(message = 'Calculation in progress',
detail = 'This may take a while...')
for (i in 1:15) {
progress$set(value = i)
Sys.sleep(0.5)
}
plot(cars)
})
})
## End(Not run)