'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 包含加载程序.gif和忙.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)
加载器.gif(以及文本,如果提供(总是在 shiny 繁忙时出现(函数中提供了延迟(。