많은 플롯이있는 반짝이는 대시 보드가 있으며,이 모든 플롯에는 빌드하는데 몇 초가 걸립니다. 마지막 하나가 빌드되면 모두 표시됩니다. 완료 되 자마자 각 줄거리가 표시되기를 바랍니다. 나는 R이 단일 쓰레드 인 것을 이해한다. 그러나 마치 "디스플레이 코드에 대한 실행을 리턴하는"방법이 필요하다.플롯을 모두 기다리는 대신 반짝이는 형태로 표시하는 방법이 있습니까?
library(shiny)
ui <- fluidPage(
title = "Page loading test"
, h1("Page loading test")
, plotOutput("plot1")
, plotOutput("plot2")
, plotOutput("plot3")
, plotOutput("plot4")
)
server <- function(input, output) {
output$plot1 <- renderPlot({
Sys.sleep(10)
plot(rnorm(50))
})
output$plot2 <- renderPlot({
Sys.sleep(10)
plot(rnorm(50))
})
output$plot3 <- renderPlot({
Sys.sleep(10)
plot(rnorm(50))
})
output$plot4 <- renderPlot({
Sys.sleep(10)
plot(rnorm(50))
})
}
shinyApp(ui = ui, server = server)
잠이 느린 실행을 에뮬레이트하는 단지입니다
이 코드는 문제를 보여줍니다.
페이지를 표시하는 데 40 초가 소요됩니다. 나는 plot1을 표시하기 위해 10 초가 걸린 다음 plot2를 표시하기 위해 10 초가 걸리게하고 싶습니다. 각 Plot 함수의 맨 아래에서 호출 할 수있는 UpdatePage()와 같은 호출이 있습니까?
내 페이지에서 사용자가 액티비티가 발생하고 있음을 알 수 있도록 애니메이션이로드되어있어 한 번에로드 할 때 훨씬 더 분명합니다.
물론 더 간단한 페이지를 만들 수도 있지만 대시 보드가 아닙니다. :)