2017-11-16 1 views
1

대시 보드의로드 페이지를 만들려고하는데 작동하지 않는 것 같습니다. 나는 그 예를 따랐다. Shiny Dashboard - display a dedicated "loading.." page until initial loading of the data is done하지만 유동적 인 페이지를위한 것이지 반짝이는 대시 보드가 아니며 적응 방법을 알 수 없습니다.반짝이는 대시 보드로드 중

도움이 될 것입니다.

로딩 페이지가 유동적 인 페이지 (헤더 또는 사이드 바 없음)로되어 있고 내 대시 보드에 반짝이는 대시 보드가 있어야합니다.

추가 사항 :로드하는 화면에 gif를 추가 할 수 있다면 정말 좋을 것입니다. 같은 뭔가 :

<iframe src="https://giphy.com/embed/BlmF3MhGfa4SY" width="480" height="360" frameBorder="0" class="giphy-embed" allowFullScreen></iframe><p><a href="https://giphy.com/gifs/plane-BlmF3MhGfa4SY">via GIPHY</a></p> 

[휴식]

library (shiny) 
library (shinydashboard) 
library(shinyjs) 


rm(list=ls()) 

appCSS <- " 
#loading_page { 
    position: absolute; 
    background: #000000; 
    opacity: 0.9; 
    z-index: 100; 
    left: 0; 
    right: 0; 
    height: 100%; 
    text-align: center; 
    color: #FFFFFF; 
} 
" 
header <- dashboardHeader() 
sidebar <- dashboardSidebar() 
body <- dashboardBody("It worked!") 


ui <- dashboardPage(
    useShinyjs(), 
    inlineCSS(appCSS), 
    div(
    id = "loading_page", 
    dashboardHeader(), 
    dashboardSidebar(), 
    dashboardBody("Loading...") 
), 
    hidden(
    div(
     id = "main_content", 
     header, sidebar, body 
    ) 
) 
) 


server = function(input, output, session) { 
    # Simulate work being done for 4 second 
    Sys.sleep(4) 

    hide("loading_page") 
    show("main_content") 
    } 

shinyApp(ui, server) 
+0

는 아래의 답을이 되었습니까 라이브러리를 시도? – amrrs

답변

2

`shinycssloaders` 도움을 사용 shinycssloaders

library(shiny) 
library(shinycssloaders) 
library(highcharter) 

ui <- fluidPage(
     mainPanel(
       plotOutput("my_plot") %>% withSpinner(color="#0dc5c1") 
     ) 
) 

server <- function(input, output){ 

     output$my_plot <- renderPlot({ 
       Sys.sleep(1) 
       plot(mtcars)}) 
} 

shinyApp(ui, server) 
+0

이 코드는 코드를 거의 변경하지 않아도 좋은 훌륭한 솔루션입니다! UI가있는 부분이 마음에 들다. 렌더링 시간 ('withProgress' bar와 달리)을 고려해야하기 때문이다. 유일한 단점은 여러 개의 그림이있는 탭이 여러 개있어서 복사 및 붙여 넣기가 필요하다는 것입니다. – Kevin

관련 문제