R Shiny Server - 在应用程序启动时设置加载动画
Posted
技术标签:
【中文标题】R Shiny Server - 在应用程序启动时设置加载动画【英文标题】:R Shiny Server - set a loading animation on application startup 【发布时间】:2020-02-13 01:51:32 【问题描述】:我过去使用过 shinyapps.io,它在应用程序启动时提供加载动画(微调器)。这很有用,因为我将 200MB 的 .RData
文件加载到内存中(启动时一次,而不是每个 server()
)。这最多需要 40 秒(将来,我将过渡到将数据存储在数据库中,但现在这是我得到的)。
对于其他应用程序,我使用了 docker 映像 rocker/shiny
,并希望完全过渡到基于 Docker 的方法,并将我所有闪亮的应用程序放在一台服务器上,并远离 shinyapps.io。但是,我在使用此应用程序时遇到的一个问题是它在启动时不显示加载动画,因此在加载数据时用户会出现 30-40 秒的灰屏在后台。
至于代码,我加载所有数据,然后在运行shiny::shinyApp(ui = ui, server = server)
之前获取ui.R
和server.R
。
你们有没有人知道在应用程序启动时指定加载动画的方法(我在服务器配置本身中没有发现任何东西,但我可能忽略了一些东西)?或者您是否找到了一个很好的解决方法来达到预期的效果?
【问题讨论】:
数据加载到server
?
@StéphaneLaurent 不,数据是在服务器和用户界面之外加载的,甚至在它们被获取之前,所以它只加载一次,而不是每个用户一次。
【参考方案1】:
所以我最终做的是遵循这里建议的解决方法:http://www.mazsoft.com/blog/post/2018/01/01/show-progress-bar-when-pre-loading-data-in-shiny-app
这个想法是我们用NULL
初始化所有数据变量。然后在server
和ui
之外有一个readData()
函数,我们将所有数据加载到全局变量中,在server
函数块的开头,我们检查我们的数据变量之一is.null()
是否会导致我们调用readData()
函数。
这对我的问题来说是一个不错的解决方案,因为它是一个很好的解决方法,但我无法弄清楚如何在启动时实际显示加载动画,只是在加载数据时。我希望这可以帮助有类似问题的人。
【讨论】:
以上是关于R Shiny Server - 在应用程序启动时设置加载动画的主要内容,如果未能解决你的问题,请参考以下文章
在 Ubuntu Server 上将 .R 文件转换为实际的 Shiny 应用程序
通过 Shiny Server 将 Shiny 输入传递给 R markdown