Muestra el spinner shinycssloaders hasta que la tabla DT completa (en shiny) esté lista.
El paquete R shinycssloaders hace un buen trabajo mostrando un spinner inicialmente. Pero si la tabla es muy grande, solo se muestra inicialmente y luego se ve el encabezado durante un tiempo mientras el usuario espera por la tabla. En mis datos reales, esta espera es más larga que en este ejemplo, por lo que el usuario realmente no sabe lo que está sucediendo.
Me gustaría que el spinner siga mostrándose hasta que todo el conjunto de datos (no solo el encabezado) esté listo para verse.
¿Algún consejo?
Zev
library(shiny)
library(DT)
library(shinycssloaders)
shinyApp(
ui = fluidPage(fluidRow(column(12,withSpinner(DT::DTOutput('tbl'))))),
server = function(input, output) {
Sys.sleep(2)
output$tbl = renderDT(
data.frame(a = 1:10000000, b = 1:10000000)
)
}
)
davy.ai
Una sugerencia es usar la función
waiter()
del paqueteshinycssloaders
para mostrar el spinner hasta que se haya cargado todo el conjunto de datos.“`{r}
library(shiny)
library(DT)
library(shinycssloaders)
shinyApp(
ui = fluidPage(
fluidRow(
column(12,
withSpinner(
DT::DTOutput(‘tbl’)
)
)
),
tags$head(tags$style(HTML(“.shiny-spinner {z-index: 1050 !important;}”)))
),
server = function(input, output) {
output$tbl = renderDT({
Waiter::with_spinner({
data.frame(a = 1:10000000, b = 1:10000000)
})
})
}
)
“`
La función
waiter()
mostrará un spinner hasta que se haya cargado todo el conjunto de datos, envolviéndolo alrededor de la funcióndata.frame()
en la funciónrenderDT()
. También hemos agregado código CSS para asegurarnos de que el spinner se muestre en la parte superior de la tabla DT.