强制绘制隐藏表

问题描述

我有以下应用,它只是一个包含rhandsontable表的折叠面板。

library(shiny)
library(shinyBS)
library(rhandsontable)

ui <- function() {
  fluidPage(
    bsCollapsePanel(
      "Test",rHandsontableOutput("table")
    )
  )
}

server <- function(input,output,session) {
  output$table <- renderRHandsontable({
    rhandsontable(
      data.frame(
        a = 1:2,b = 2:3
      )
    )
  })
}

shinyApp(ui,server)

它按预期方式工作:面板以隐藏其内容的开头开始,如果单击它,面板将打开并看到表格。

但是,面板开口和出现的桌子之间存在明显的“滞后”。我认为这是因为该表直到那时才被初始化,因此所有实际创建表的工作都只在那一刻发生。

如果我们随后关闭面板并重新打开,则不会出现此类滞后,甚至在面板重新打开时我们甚至可以逐渐看到表格。

我不知道这是功能还是错误,或者是谁的“过失”:rhandsontable,因为懒于启动? shinyBS,因为懒惰地启动其内容? shiny通常仅在需要时立即触发重绘吗?我认为它是rhandsontable,因为像textInput()这样的基本元素没有这个问题,但是不能确定。

那么,有没有一种方法可以在应用程序启动时(而不是仅在面板展开时)强制对此表进行初始化?

我曾经考虑过将面板设置为开始打开,然后在启动时破解服务器以关闭面板,但是我不完全确定那是如何工作的……或者甚至可以工作(如果它在第一次重画之前就关闭了,这有什么区别呢?如果是在第一次重画之后,那意味着启动时会闪烁,对吧?)。

解决方法

我认为应该这样做:

ini_set('session.use_cookies','On');
ini_set('session.use_trans_sid','Off');
        
session_set_cookie_params(60 * 60 * 24 * 30,'/');
session_start();

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...