दिलचस्प पोस्ट
एक्लिप्स में जावा प्रोजेक्ट: टाइप करें java.lang.Object को हल नहीं किया जा सकता। यह अप्रत्यक्ष रूप से आवश्यक वर्ग वर्गों से संदर्भित है JQuery में एक पृष्ठ से एक पृष्ठ से दूसरे मूल्य कैसे पास करें SQLite दिनांकटाइम तुलना सरणी को जावास्क्रिप्ट में मूल्य से कॉपी करना क्या कोई Visual Basic 6 decompiler है? आईआईएस एक्सप्रेस 8 बीटा को 64-बिट प्रक्रिया के रूप में वेबसाइट चलाने के लिए नहीं मिल सकता है किसी फ़ोल्डर में सभी फ़ाइलों के फ़ाइल नाम प्राप्त करना ASP.Net MVC में एक वैश्विक फ़िल्टर को चुनिंदा रूप से अक्षम कैसे करें जावास्क्रिप्ट – ट्रैक माउस स्थिति बैच फ़ाइलें: संबंधित पथ के साथ एक निर्देशिका में सभी फाइलों की सूची एक div को स्क्रीन के शीर्ष पर चिपकाएं अगर इसे पिछले नीचे स्क्रॉल किया गया है IE 10 – फ़ाइल डाउनलोड समस्याएं सी # में थोक अद्यतन दो पंक्तियों का प्रयोग करके ढेर को लागू करें आप स्मृति में एक मनमाने ढंग से बड़े पूर्णांक मान को कैसे संग्रहीत करते हैं?

चमकदार: फ़ंक्शन चालू हो रहा है, तो प्रदर्शित "लोड हो रहा है …" संदेश

मैं शालीन जीयूआई आर पैकेज का उपयोग करता हूँ मैं एक्शन बटन के दबाए जाने के बाद "लोडिंग …" जैसे संदेश प्रदर्शित करने का एक तरीका तलाश रहा हूं। फ़ंक्शन को निष्पादित करने में कई मिनट लगते हैं, इसलिए मुझे उपयोगकर्ता को किसी तरह सूचित करना होगा कि बटन ने वास्तव में कुछ ईवेंट ट्रिगर किया था। अब सर्वर.आर कोड इस तरह दिखता है:

DATA <- reactive({ if(input$DownloadButton>0) { RunDownload() } else { NULL } }) output$Download <- renderText({ if(NROW(DATA())>0) { paste0(Sys.time(),": ",NROW(DATA()), " items downloaded") } else { '' } }) 

actionButton() एक फ़ंक्शन है जो इंटरनेट से डेटा डाउनलोड करता है input$DownloadButton कार्रवाई है बटन। तो बटन दबाए जाने के बाद उपयोगकर्ता कई मिनट के लिए प्रतीक्षा करता है और उसके बाद ही एक संदेश दिखाई देता है कि यह डाउनलोड सफल रहा है मैं एक्शन बटन के बाद बस एक बटन "लोड हो रहा है …" को दिखाना चाहूंगा और फिर paste0(Sys.time(),": ",NROW(DATA()), " items downloaded") जैसे दूसरे संदेश को निष्पादन समाप्त होता है।

Solutions Collecting From Web of "चमकदार: फ़ंक्शन चालू हो रहा है, तो प्रदर्शित "लोड हो रहा है …" संदेश"

मैं पहले जो भी पोस्ट किया था उसके मुकाबले मैं एक सरल और अधिक विश्वसनीय तरीके से उपयोग कर रहा हूं।

का संयोजन

 tags$style(type="text/css", " #loadmessage { position: fixed; top: 0px; left: 0px; width: 100%; padding: 5px 0px 5px 0px; text-align: center; font-weight: bold; font-size: 100%; color: #000000; background-color: #CCFF66; z-index: 105; } ") 

साथ में

 conditionalPanel(condition="$('html').hasClass('shiny-busy')", tags$div("Loading...",id="loadmessage") ) 

उदाहरण:

 runApp(list( ui = pageWithSidebar( headerPanel("Test"), sidebarPanel( tags$head(tags$style(type="text/css", " #loadmessage { position: fixed; top: 0px; left: 0px; width: 100%; padding: 5px 0px 5px 0px; text-align: center; font-weight: bold; font-size: 100%; color: #000000; background-color: #CCFF66; z-index: 105; } ")), numericInput('n', 'Number of obs', 100), conditionalPanel(condition="$('html').hasClass('shiny-busy')", tags$div("Loading...",id="loadmessage")) ), mainPanel(plotOutput('plot')) ), server = function(input, output) { output$plot <- renderPlot({ Sys.sleep(2); hist(runif(input$n)) }) } )) 

टैग $ head () की आवश्यकता नहीं है, लेकिन सिर टैग के अंदर सभी शैलियों को रखने के लिए यह एक अच्छा अभ्यास है।

मैंने साइडबारपैनेल () को निम्न कोड जोड़कर समस्या का समाधान किया:

 HTML('<script type="text/javascript"> $(document).ready(function() { $("#DownloadButton").click(function() { $("#Download").text("Loading..."); }); }); </script> ') 

आप शिनीजेएस का उपयोग कर सकते हैं: https://github.com/daattali/shinyjs

जब एक्शन बटन दबाया जाता है, तो आप आसानी से "लोड हो रहा है …" दिखाए जाने वाले पाठ घटक को टॉगल कर सकते हैं, और जब गणना समाप्त हो गई है, तो आप इस घटक को छिपी में बदल सकते हैं।

मुझे एक समाधान मिला, जो मेरे लिए ठीक काम करता है मैं बूटस्ट्रैप मॉडल का उपयोग कर रहा हूँ यह तब दिखाया जाता है जब समारोह का निष्पादन शुरू होता है और फिर छिपा रहता है, जब यह समाप्त हो जाता है

modalBusy <- फ़ंक्शन (आईडी, शीर्षक, …) {

  msgHandler = singleton(tags$head(tags$script('Shiny.addCustomMessageHandler("jsCode", function(message) { console.log(message) eval(message.code); });' ) ) ) label_id = paste(id, "label", sep='-') modal_tag <- div(id=id, class="modal hide fade", "aria-hidden"=FALSE, "aria-labelledby"=label_id, "role"="dialog", "tabindex"="-1", "data-keyboard"=FALSE, "data-backdrop"="static") header_tag <- div(class="modal-header", h3(id=label_id, title)) body_tag <- div(class="modal-body", Row(...)) footer_tag <- div(class="modal-footer") modal_tag <- tagAppendChildren(modal_tag, header_tag, body_tag, footer_tag) tagList(msgHandler, modal_tag) } 

दिखाने के लिए और छुपाने के लिए कार्य का उपयोग करें

 showModal <- function(id,session) { session$sendCustomMessage(type="jsCode", list(code= paste("$('#",id,"').modal('show')" ,sep=""))) } hideModal <- function(id,session) { session$sendCustomMessage(type="jsCode", list(code= paste("$('#",id,"').modal('hide')" ,sep=""))) } 

अपने फ़ंक्शन कॉल से पहले showModal फ़ंक्शन को कॉल करें और बाद में छिपाने वाला मॉडल फ़ंक्शन कॉल करें!

उम्मीद है की यह मदद करेगा।

SEB