glänzende App beschäftigt Indikator

8

Hinweis: Ich habe fast alle Diskussionen zu diesem Objekt in glänzenden googlegroups und hier in SO gelesen.

Ich brauche einen Indikator, der zeigt, dass der glänzende Server beschäftigt ist. Ich habe einen glänzenden Inkubator ausprobiert, aber das Problem ist, dass ich keinen Max für den Fortschrittsbalken einstellen kann. Ich möchte nicht so etwas: Ссылка Was ich brauche, ist etwas, das: 1- zeigt eine Besetztzeichenmitteilung und -leiste (d. H. Nur eine einfache animierte Leiste, muss keine Füllleiste anzeigen), solange der Server berechnet 2- Es wird angezeigt, egal welche Registerkarte angezeigt wird. (nicht nur in der verwandten Registerkarte, sondern über dem Tabset)

Danke

    
Elaheh kamaliha 23.09.2014, 20:35
quelle

4 Antworten

9

Update 2018: Derzeit gibt es ein großartiges Paket, das Ihnen bei der Anzeige von Loadern hilft: shinycssloaders ( Quelle : Ссылка) )

Ich habe auch danach gesucht. Die meisten Leute schlagen ein bedingtes Panel vor:

%Vor%

Du könntest dir immer mehr Kontrolle geben und die bedingte Behandlung (vielleicht abhängig von mehr Dingen) so in deinem ui.R erstellen:

%Vor%

wo einige JavaScript das Anzeigen und Ausblenden dieses div behandelt:

%Vor%

Mit etwas mehr CSS können Sie sicherstellen, dass Ihr animiertes besetztes Bild eine feste Position erhält, wo es immer sichtbar ist.

In jedem der oben genannten Fälle habe ich festgestellt, dass der "glänzend-beschäftigt" Zustand etwas ungenau und unzuverlässig ist: das div zeigt für einen Bruchteil einer Sekunde und verschwindet, während die Berechnungen noch laufen ... Ich habe eine dreckige Lösung gefunden, um dieses Problem zumindest in meinen Apps zu beheben. Probieren Sie es aus und vielleicht könnte jemand einen Einblick geben, wie und warum dies das Problem löst.

In Ihrem Server.R müssen Sie zwei reactiveValues ​​hinzufügen:

%Vor%

Dann verwenden Sie in Ihrer renderPlot-Funktion (oder einer anderen Ausgabefunktion, in der Berechnungen ausgeführt werden) diese reaktiven Werte, um die Funktion zurückzusetzen:

%Vor%     
svdwoude 02.10.2014, 11:46
quelle
1

Ich fand mit fadeIn () im Gegensatz zu show () hilft, dieses blinkende Vorkommen zu verringern:

%Vor%     
Richard Bates 07.03.2017 19:13
quelle
0

Das belebte div erscheint auch für Sekundenbruchteile für die neuesten Versionen von shiny, obwohl keine offensichtlichen Berechnungen durchgeführt werden (in älteren Versionen war das kein Problem). Shiny scheint für kurze Zeit regelmäßig im Besetzt-Modus zu sein. Als eine Lösung (die obige Diskussion ergänzend) kann eine zweite verzögerte Validierung der glänzend-beschäftigten HTML-Klasse für die bedingte Behandlung hinzugefügt werden. Der JavaScript-Teil würde ungefähr so ​​aussehen (Beispiel beinhaltet auch die Überprüfung auf zwei verschiedene div.busy-Zustände, abhängig vom reaktiven Text):

%Vor%     
martin 24.06.2016 12:58
quelle
0

Alternativ können Sie shinycssloaders package Ссылка

verwenden %Vor%

    
Pork Chop 26.03.2018 10:36
quelle