%%{init: {
"theme": "base",
"themeVariables": {
"fontFamily": "Lato, system-ui, sans-serif",
"background": "#f8f8f8",
"primaryColor": "#1a1a1a",
"primaryTextColor": "#f8f8f8",
"primaryBorderColor": "#1a1a1a",
"lineColor": "#2d2d2d",
"actorBkg": "#1a1a1a",
"actorBorder": "#1a1a1a",
"actorTextColor": "#f8f8f8",
"actorLineColor": "#2d2d2d",
"signalColor": "#2d2d2d",
"signalTextColor": "#2d2d2d",
"noteBkgColor": "#ffffff",
"noteTextColor": "#2d2d2d",
"noteBorderColor": "#4a6cf7",
"sequenceNumberColor": "#f8f8f8"
}
}}%%
sequenceDiagram
autonumber
participant N as Navigateur
participant S as Serveur R (plumber2 + htmxr)
N->>+S: GET /plot?bins=X
Note right of S: exécute la route<br/>génère le HTML
S-->>-N: <svg>...</svg>
Note over N: htmx swap le SVG dans #35;plot
Comment
Shinycommunique%%{init: { "theme": "base", "themeVariables": { "fontFamily": "Lato, system-ui, sans-serif", "background": "#f8f8f8", "primaryColor": "#1a1a1a", "primaryTextColor": "#f8f8f8", "primaryBorderColor": "#1a1a1a", "lineColor": "#2d2d2d", "actorBkg": "#1a1a1a", "actorBorder": "#1a1a1a", "actorTextColor": "#f8f8f8", "actorLineColor": "#2d2d2d", "signalColor": "#2d2d2d", "signalTextColor": "#2d2d2d", "noteBkgColor": "#ffffff", "noteTextColor": "#2d2d2d", "noteBorderColor": "#4a6cf7", "sequenceNumberColor": "#f8f8f8" } }}%% sequenceDiagram autonumber participant N as Navigateur participant S as Serveur R (Shiny) Note over N,S: WebSocket persistant Note over S: Session R dédiée N->>+S: input$bins = X Note right of S: invalide les dépendances<br/>recalcule ce qu'il faut S-->>-N: output$plot = <PNG> Note over N: Shiny met à jour l'élément<br/>lié à output$plot🔥 Le serveur garde le tuyau ouvert.