如何防止RStudio Shiny应用程序服务器发送“忙/闲”状态更新?
在我的应用程序中观察Websocket流量时,我注意到服务器不断发送有关its current status ("busy"/"idle")的更新。
服务器状态:忙/闲
当服务器上发生某些事情(例如,观察者正在运行)时,将触发Shiny:busy事件,而Shiny:idle事件则指示服务器何时处于空闲状态。事件对象没有任何与Shiny相关的特殊属性。
在服务器端使用Shiny版本1.1.0,在客户端使用Chrome 66。
我的问题的背景
我觉得此功能可能会降低我的应用程序的速度,因为在将信息发送到服务器后,客户端似乎在阻塞自己几秒钟。很难复制,但是会发生什么(根据websocket流量日志):
{"busy":"idle"}
。 在流量日志中显示步骤5/6后几秒钟会发生这种情况。 示例代码
此应用程序以非常简单的方式显示有问题的服务器通信。我想减少来自服务器的通信。
library(shiny)
ui <- fluidPage(
titlePanel("Test"),
sidebarLayout(
sidebarPanel(
actionButton(inputId = "testButton",
label = "Click me")
),
mainPanel(
textOutput(outputId = "testText")
)
)
)
server <- function(input, output) {
observeEvent(input$testButton,{
output$testText <- renderText({
Sys.time()
})
})
}
shinyApp(ui = ui, server = server)
Websocket流量日志:
请注意:上面的示例已简化,此处无法看到所描述的等待时间长的效果。尽管如此,不需要的状态更新还是可以观察到的。问题随着应用程序代码的增长而出现,在这些特殊情况下,关闭“闪亮”状态消息可能会对我有帮助。