R Shiny 显示应用程序在小部件中很忙
R Shiny display app is busy in a widget
我正在开发一个涉及 Twitter 数据获取的 R Shiny 应用程序。由于该过程可能会持续一段时间,我想表明应用程序正忙于做某事,因此用户不会认为页面已冻结。
在我的例子中,我以这种方式存储一些反应值:
rv <- reactiveValues()
rv$analysisStarted <- FALSE
rv$analysisAvailable <- FALSE
然后,在 UI 中,用户必须按下 actionButton 才能开始处理。然后,我想指出服务器正在工作的地方...
observeEvent(input$analysisButton, {
rv$analysisStarted <- TRUE
rv$analysisAvailable <- FALSE
#Processing Twitter info...
rv$followersAnalysisStarted <- FALSE
rv$followersAnalysisAvailable <- TRUE
})
如果在 UI.r 中放置一个 textOutput 并以这种方式创建相应的输出方法,它不起作用:
output$text <- renderText({
if (rv$analysisStarted) {
"Server is working..."
} else if (rv$analysisAvailable) {
"Your report is ready :) "
} else {
"Enter the data to search and press analysisButton"
}
})
我注意到,当分析开始时,标签变为灰色,但它不会更新文本,直到过程结束。
此功能的正确编码应该是什么?
是否可以在 observeEvent 中重绘文本输出?
是否可以使用原始的 shiny 库或需要 shinyjs,我也在使用它?
任何帮助将不胜感激。
对于您的情况,进度条 有助于检查状态。您的用户会喜欢此元素来指示状态。不幸的是,进度条必须在功能之前编码。这是一个技巧,您会看到一个进度条,但该对象会在函数启动时停止。
教程如下:http://shiny.rstudio.com/gallery/progress-bar-example.html
在我看来,进度条是告知网络用户网站状态的最佳方式,但它并不完美。此外,您可以使用 CSS 更改栏的样式以自定义和 select 您自己的颜色、大小...
我正在开发一个涉及 Twitter 数据获取的 R Shiny 应用程序。由于该过程可能会持续一段时间,我想表明应用程序正忙于做某事,因此用户不会认为页面已冻结。
在我的例子中,我以这种方式存储一些反应值:
rv <- reactiveValues()
rv$analysisStarted <- FALSE
rv$analysisAvailable <- FALSE
然后,在 UI 中,用户必须按下 actionButton 才能开始处理。然后,我想指出服务器正在工作的地方...
observeEvent(input$analysisButton, {
rv$analysisStarted <- TRUE
rv$analysisAvailable <- FALSE
#Processing Twitter info...
rv$followersAnalysisStarted <- FALSE
rv$followersAnalysisAvailable <- TRUE
})
如果在 UI.r 中放置一个 textOutput 并以这种方式创建相应的输出方法,它不起作用:
output$text <- renderText({
if (rv$analysisStarted) {
"Server is working..."
} else if (rv$analysisAvailable) {
"Your report is ready :) "
} else {
"Enter the data to search and press analysisButton"
}
})
我注意到,当分析开始时,标签变为灰色,但它不会更新文本,直到过程结束。
此功能的正确编码应该是什么? 是否可以在 observeEvent 中重绘文本输出? 是否可以使用原始的 shiny 库或需要 shinyjs,我也在使用它?
任何帮助将不胜感激。
对于您的情况,进度条 有助于检查状态。您的用户会喜欢此元素来指示状态。不幸的是,进度条必须在功能之前编码。这是一个技巧,您会看到一个进度条,但该对象会在函数启动时停止。
教程如下:http://shiny.rstudio.com/gallery/progress-bar-example.html
在我看来,进度条是告知网络用户网站状态的最佳方式,但它并不完美。此外,您可以使用 CSS 更改栏的样式以自定义和 select 您自己的颜色、大小...