在Shiny中使用leafletProxy更新时,在地图上显示加载微调器

问题描述 投票:3回答:1

'shinycssloaders'软件包是作为一个简单的包装器开发的,可以为UI输出提供加载图标,效果很好。不幸的是,它不适用于通过leafletProxy更新的地图(只有生成的初始地图才会使用加载图标)。

有没有一个已知的解决方案?

r shiny leaflet r-leaflet
1个回答
1
投票

以下是我使用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(以及提供的文本)。

© www.soinside.com 2019 - 2024. All rights reserved.