在下面的Shiny应用程序中,按下操作按钮(运行)时会执行长计算。输出显示在计算结束时。
应用程序中显示了一个时钟。虽然长时间计算正在进行,但时钟不会更新。
在计算过程中是否可以更新时钟?
代码:
library(shiny)
n <- c(1:42E7)
ui <- fluidPage(
actionButton(inputId = "run", label = "Run a long calculation"),
verbatimTextOutput("calc"),
verbatimTextOutput("time")
)
server <- function(input, output) {
x <- observeEvent(input$run,{
output$calc <- renderText({
head(sqrt(n))
})
})
output$time <- renderText({
invalidateLater(1000)
print(as.character(Sys.time()))
})
}
shinyApp(ui = ui, server = server)
感谢您的期待,
克里斯
答案 0 :(得分:1)
这个答案还不行,我把它放在这里只是为了让你能够接受我。
您需要更新为Shiny(var express = require('express');
var app = express();
var path = require('path');
var router = express.Router();
// viewed at http://localhost:8080
app.use(express.static(__dirname + '/dist'));
app.listen(80);
)的开发版本。
我用remotes::install_github("rstudio/shiny")
替换了您的玩具示例,因为转移了引发选项Sys.sleep()
所需的大向量,但仍然导致我的机器崩溃。
future.globals.maxSize
我预计它会起作用,但“昂贵的操作”仍在阻塞,我还没弄清楚为什么。希望它仍然有用。