guia - R Aplicación brillante Indicador de progreso para cargar datos
qgis manual (2)
Shiny es nuestra herramienta interna de BI. Para nuestras aplicaciones Shiny, cargamos datos antes de que se ejecute shinyServer:
load("afterProcessedData.RData")
# or dt = fread("afterProcessedData.csv")
shinyServer(function(input, output, session){ ...
Sin embargo, algunas aplicaciones están cargando archivos grandes y tardan hasta 30 segundos en cargarse. Muchos usuarios, cuando abren una página, no saben si la página está rota ya que está bloqueada cuando se está cargando. Pueden cerrarlo o hacer clic en los filtros, lo que puede causar un error. En este caso, una barra de progreso será muy útil. Noto que con withProgress()
puede ayudar, pero tiene que estar dentro de reactive()
o renderXx()
.
Una forma de hacerlo es tener laod()
warpped con reactive()
dentro de shinyServer(function(input, output, session){
pero mi preocupación es que ralentizará el rendimiento. Y a mis usuarios les importa mucho el rendimiento receptivo.
Alguna sugerencia para esta situación?
Editar: Supongo que no hay una manera fácil de hacer esto. Tengo otro pensamiento. Tal vez pueda mostrar un texto en la pantalla diciendo ''los datos se están cargando'', pero tengo que hacerlo desaparecer después de que aparezca la primera tabla. Sin embargo, no sé cómo configurar la condición. A continuación está mi código que muestra la primera tabla:
dashboardBody(
fluidRow(
tabBox(width = 12,
tabPanel("Summary",
dataTableOutput("data1")),
¡Gracias de antemano!
Aunque todavía estoy interesado en saber cómo agregar la barra de proceso para load()
, he implementado la solución alternativa, que por ahora es buena. Tiene un texto que dice "los datos se están cargando ..." en la página, y desaparecerá cuando aparezca la primera tabla.
#server.R firstData is a reactive function to get the data for 1st table
output$firstTable = reactive({
return(is.null(firstData()))
})
#ui.R
conditionalPanel(
condition = "output.firstTable",
box(width = 12,
h1("The data is loading...")
)
)
Para hacer referencia a la nota intrigante de @ user5249203, withSpinner()
parece ser una opción útil para esta funcionalidad y es parte del paquete shinycssloaders
. No me he utilizado, pero definitivamente es un paquete intrigante que está en CRAN y tiene algunos buenos ejemplos: https://andrewsali.shinyapps.io/example/