'shinycssloaders'软件包是作为一个简单的包装器开发的,可以为UI输出提供加载图标,效果很好。不幸的是,它不适用于通过leafletProxy更新的地图(只有生成的初始地图才会使用加载图标)。
有没有一个已知的解决方案?
以下是我使用github.com/AnalytixWare/ShinySky/blob/master/R/busy-indicator.r提供的功能的方法。
在您的UI中:
tagList(
tags$head(
tags$script(type="text/javascript", src = "busy.js")
)
),
div(class = "busy", p('your text'),img(src="loader.gif")
)
其中文件夹www包含loader.gif和busy.js
setInterval(function(){
if ($('html').attr('class')=='shiny-busy') {
setTimeout(function() {
if ($('html').attr('class')=='shiny-busy') {
$('div.busy').show()
}
}, 1500)
} else {
$('div.busy').hide()
}
}, 0)
然后,当光泽处于忙状态时(在功能中提供延迟),始终显示loader.gif(以及提供的文本)。