闪亮仪表板的加载页面
Loading Page for Shiny Dashboard
我正在尝试为我的仪表板创建一个加载页面,但我似乎无法让它工作。我按照这里的例子; Shiny Dashboard - display a dedicated "loading.." page until initial loading of the data is done 但它适用于流畅的页面而不是闪亮的仪表板,我不知道如何调整它。
如有任何帮助,我们将不胜感激!
我希望加载页面只是一个流畅的页面(没有 header 或侧边栏),然后让我的主仪表板具有闪亮的仪表板方面。
额外:如果我可以在加载屏幕上添加一个 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)
试试这个库 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)
试试这个库:waiter
使用最少且干净的代码非常容易使用。带有多个加载动画。
用法:
library(shiny)
library(waiter)
ui <- fluidPage(
use_waiter(),
actionButton("show", "Show loading for 5 seconds")
)
server <- function(input, output, session){
observeEvent(input$show, {
show_waiter(spin_fading_circles())
Sys.sleep(4)
hide_waiter()
})
}
if(interactive()) shinyApp(ui, server)
Link: https://cran.r-project.org/web/packages/waiter/readme/README.html
我正在尝试为我的仪表板创建一个加载页面,但我似乎无法让它工作。我按照这里的例子; Shiny Dashboard - display a dedicated "loading.." page until initial loading of the data is done 但它适用于流畅的页面而不是闪亮的仪表板,我不知道如何调整它。
如有任何帮助,我们将不胜感激!
我希望加载页面只是一个流畅的页面(没有 header 或侧边栏),然后让我的主仪表板具有闪亮的仪表板方面。
额外:如果我可以在加载屏幕上添加一个 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)
试试这个库 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)
试试这个库:waiter
使用最少且干净的代码非常容易使用。带有多个加载动画。
用法:
library(shiny)
library(waiter)
ui <- fluidPage(
use_waiter(),
actionButton("show", "Show loading for 5 seconds")
)
server <- function(input, output, session){
observeEvent(input$show, {
show_waiter(spin_fading_circles())
Sys.sleep(4)
hide_waiter()
})
}
if(interactive()) shinyApp(ui, server)
Link: https://cran.r-project.org/web/packages/waiter/readme/README.html