我编写了一个应用程序,它调用存储过程来更新MySQL中的表,然后查询新表(使用RMySQL),进行一些数据操作并绘制一堆图。
我设计的应用程序包含一个刷新按钮,假设当页面刷新时,闪亮会重新查询数据库并重新计算输出的所有值。然而,在测试之后,它没有这样做(并且保持旧值不被预刷新)。我按下刷新按钮时尝试关闭与数据库的连接,然后重新打开它,但这只会导致应用程序断开连接。
我的问题是为什么它会记住旧值而不是更新它们,并且有什么方法可以告诉它在刷新后重新执行所有操作?抱歉,如果这是一个非常基本的问题,任何可以指向正确方向的东西都会很棒。
我已经在下面列出了相关块的示例,但不确定它会有多大用处!
library(RMySQL)
library(shiny)
library(shinyjs)
con = dbConnect(RMySQL::MySQL(), dbname="abfd",
username="abc",password="abc123", host='blah, port=3306))
con2 = dbConnect(RMySQL::MySQL(), dbname="abfd",
username="abc",password="abc123", host='blah, port=3306))
frfr<-dbGetQuery(con2, 'CALL Updatedata();' )
Data<-as.data.frame(dbGetQuery(con,'SELECT Date, Age,Name FROM Results
WHERE Date >= DATE(NOW()) - INTERVAL 7 DAY ORDER BY Date Asc;'))
jsResetCode <- "shinyjs.reset = function() {history.go(0)}"
ui <- fluidPage(
shinyjs::useShinyjs(),
extendShinyjs(text = jsResetCode),
actionButton('Refresh','Refresh Data')
)
server <- function(input, output,session) {
observeEvent(input$Refresh,{
{js$reset()}
})
}
shinyApp(ui=ui, server=server)