shiny自动更新数据的例子

通常,我们用shiny做的可视化界面,数据在一开始读入后,即使数据源的数据有变动,也往往需要手动进行刷新操作。若希望数据能定时自动刷新,则可以通过在实时表达式中添加invalidateLater()来实现。

invalidateLater函数是使对象在指定时间后无效化并重新执行,如invalidateLater(20000)可实现每2秒钟自动刷新数据。

invalidateLater(millis, session = getDefaultReactiveDomain())

下面的例子是展示每秒自动更新的实时时间。可以运行试试

library(shiny)

# ui ------------------------------------------
ui <- shinyUI(fluidPage(
textOutput("currentTime")
))

# server ----------------------------------------
server <- shinyServer(function(input, output) {

t <- reactive({
invalidateLater(1000)  #1000毫秒之后重新执行
paste("当前时间是:", Sys.time())
})

output$currentTime <- renderText({
t()
})
})

# Run the application
shinyApp(ui = ui, server = server)

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注