3
即使用戶離開頁面,我如何才能讓R Shiny應用繼續運行?如何讓R在用戶導航時保持運行?
下面包含一個簡化示例,每半秒記錄一個數據點。只要查看網頁,該應用就會添加點數,當用戶導航離開時(間隙)停止並在返回時繼續。有沒有辦法讓它運行沒有差距?
示例代碼:
library(shiny)
starttime<-as.POSIXct(Sys.time())
timeconst=5
time<-as.numeric(difftime( as.POSIXct(Sys.time()),starttime, units="secs"))
mydata<-data.frame(time=Sys.time(), sin(time/timeconst))
runApp(list(
ui = pageWithSidebar(headerPanel("Sine wave"),NULL,
mainPanel(plotOutput("sinePlot"))),
server =function(input, output, session) {
autoInvalidate <- reactiveTimer(500, session)
output$sinePlot <- renderPlot({
autoInvalidate()
time<-as.numeric(difftime( as.POSIXct(Sys.time()) , starttime, units="secs"))
mydata<<-rbind(mydata,data.frame(time=Sys.time(), sin(time/timeconst)))
plot(mydata)
})}))
這似乎並不奏效。我在上面的代碼中將'reactiveTimer(500,session)'改爲'reactiveTimer(500,session = NULL)',它沒有任何作用 - 當用戶離開時仍然存在差距。對你起作用嗎? –