在背景中加载闪亮的tabPanel

时间:2017-08-16 13:00:20

标签: r shiny shiny-server shinyjs

我的闪亮tabPanel()中有几个ui.R块,所有这些都需要一点时间来加载。但是,它们似乎都被视为单独的页面,只有在从导航栏中选择tabPanel()后才会开始渲染。

在后台加载初始标签后,有没有办法预加载这些页面?

我尝试在服务器功能的底部包含以下内容:

sapply(names(outputOptions(output)),function(x) outputOptions(output, x, suspendWhenHidden = FALSE))

这适用于生活在观察者或反应性上下文之外的输出$变量,但不适用于内部的变量。

对Victorp的回应

我尝试避免在renderPlot调用时放置observer,但是我有一个reactiveVariable data.frame,通过文件轮询调用设置,然后需要是子集和转换。

该转换用于一系列情节。结构上更容易将reactiveValue置于observer子集中,然后让所有结果图使用该非反应子集。

  Data = reactivePoll(5479,
               session,
               checkFunc = function() {
                 if (file.exists(orderStatsPath))
                   file.info(orderStatsPath)$mtime[1]
                 else
                   ""
               },
               valueFunc = function() getData(orderStatsPath)
  )

  observe({

    Data = Data()
    Data = subset(Data, subset = Date >= Sys.Date() - 14)
    Data$Date = as.character(Data$Date)
    output$slippageRootTotalUSD = shiny::renderTable({
      result = dcast(Data,
                     Date ~ Symbol,
                     value.var = "slippageRootTotalUSD",
                     na.rm = T,
                     fun = sum,
                     margins = c("Date","Symbol"))

      rownames(result) = result[,1]
      result = signif(result[,-1],5)
      result
    },
    rownames = TRUE,
    hover = TRUE,
    digits = 2,
    spacing = 's'
    )

    output$SizeUSD = shiny::renderTable(
      {
        result = dcast(Data,
                       Date ~ Symbol,
                       value.var = "SizeUSD",
                       na.rm = T,
                       fun = sum,
                       margins = c("Date","Symbol"))

        rownames(result) = result[,1]
        result = round(result[,-1],0)

        result
      },
      rownames = TRUE,
      hover = TRUE,
      digits = 0,
      spacing = 's'
    )
    sapply(names(outputOptions(output)),function(x) outputOptions(output, x, suspendWhenHidden = FALSE))
 }

1 个答案:

答案 0 :(得分:4)

看看?outputOptions,您可能想要使用它:

# Disable suspend for output$myplot
outputOptions(output, "myplot", suspendWhenHidden = FALSE)