gpt4 book ai didi

重新启动 Shiny 的 session

转载 作者:行者123 更新时间:2023-12-03 23:42:47 28 4
gpt4 key购买 nike

这似乎是一个非常明显的问题,但我没有发现任何关于该主题的内容。

如何刷新 Shiny 的应用程序(相当于按 F5,或单击 RStudio 中的“重新加载应用程序”按钮)?

用户界面

 shinyUI(pageWithSidebar(
headerPanel("Example"),
sidebarPanel(
actionButton("goButton", "Refresh")
),
mainPanel(
h4("I would really like to refresh this please.")
)
))

服务器
shinyServer(function(input, output,session) { 
observe({
if(input$goButton==0) return(NULL)
isolate({
#
# I would like to refresh my session here with some sort of
# function like session(refresh)...
})
})
})

我不认为我想使用 stopApp() - 我只想刷新它,使其处于与加载时相同的状态。

更新

在 RStudio 网站上,显示 here如何从服务器管理用户的 session 。具体来说,
$ sudo rstudio-server suspend-session <pid>

在应用程序中是否有与用户等效的功能?在 session 信息 ( here ) 的文档中,它说有一个 onSessionEnded(callback) 函数。如果有一个 session.End() 函数来执行上述挂起 session 功能就好了!

最佳答案

您可以使用 history.go(0) js 方法来重新加载页面,从而重置 session ,例如从一个链接:

p(HTML("<A HREF=\"javascript:history.go(0)\">Reset this page</A>"))
此外,您可以使用 shinyjs package从服务器内执行javascript:
library(shiny)
library(shinyjs)

jsResetCode <- "shinyjs.reset = function() {history.go(0)}" # Define the js method that resets the page

shinyApp(
ui = fluidPage(
useShinyjs(), # Include shinyjs in the UI
extendShinyjs(text = jsResetCode, functions = "reset"), # Add the js code to the page
actionButton("reset_button", "Reset Page")
),

server = function(input, output) {
observeEvent(input$reset_button, {js$reset()}) # Call the method from
# somewhere within the server
})

关于重新启动 Shiny 的 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25062422/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com