Я пытаюсь прочитать глобальную переменную, которая объявлена перед пользовательским интерфейсом. В сценарии я изменяю глобальную переменную во время сеанса и в функции наблюдателя. Но когда я хочу напечатать эту измененную переменную после уничтожения сессии, она сама печатает старые значения. Я хочу сохранить эту измененную переменную (в моем требовании каждый раз, когда она меняется в каждом сеансе) для каждого сеанса.
library(shiny)
timeoutSeconds <- 5
varA <- 3 #Declaring Global variable
#Trigger the function after the 5 seconds
inactivity <- sprintf("
function idleTimer() {
var t = setTimeout(logout, %s);
window.onmousemove = resetTimer; // catches mouse movements
window.onmousedown = resetTimer; // catches mouse movements
window.onclick = resetTimer; // catches mouse clicks
window.onscroll = resetTimer; // catches scrolling
window.onkeypress = resetTimer; //catches keyboard actions
function logout() {
Shiny.setInputValue('timeOut', '%ss')
}
function resetTimer() {
clearTimeout(t);
t = setTimeout(logout, %s); // time is in milliseconds (1000 is 1 second)
}
}
idleTimer();",
timeoutSeconds*1000,
timeoutSeconds,
timeoutSeconds*1000)
#UI
ui <- fluidPage(
tags$script(inactivity)
)
#Server
server <- shinyServer(function(input,output,session){
observeEvent(input$timeOut, {
varA <-varA + 1 #Modifing this global variable for each session
print(paste0("Session (", session$token, ") timed out at: ", Sys.time()))
showModal(modalDialog(
title = "Timeout",
paste("Session timeout due to", input$timeOut, "inactivity -", Sys.time()),
footer = NULL
))
session$close()
})
session$onSessionEnded(function() {
#Should print 4
print(varA) #Printing the modified variable during sessions
})
})
runApp(ui,server)
Я хочу напечатать 4 в приведенном выше коде. Я пробовал несколько раз, но может быть, это не так. не могли бы вы помочь мне в этом.