Campo di pannello attivo
linkTrascrizione
In questa sezione abbiamo lasciato, alcuni aspetti in sospeso, dicendo che ne avremmo discusso a fine sezione: il primo era legato al caricamento di un file dal client al server ed il secondo era relativo alla variazione della Località e conseguente aggiornamento dello Stato.
Dobbiamo prima di tutto capire esattamente il funzionamento delle applicazioni web Foundation: l’applicazione web è in esecuzione su un server applicativo ed invia il proprio stato ad un client, nella fattispecie ad un browser. Quando parliamo di stato di una applicazione intendiamo proprio la situazione generale dell’applicazione in esecuzione.
Nella parte client è sempre in esecuzione del codice javascript (quello che viene chiamato framework RD3); questo codice si preoccupa di riportare nel browser lo stato dell’applicazione che il server invia sotto forma di messaggi.
Esempio l’applicazione richiede l’apertura di una videata? Lo stato applicativo server cambierà con l’aggiunta di una nuova videata e la comunicazione viene inviata tramite messaggi al client per chiedere di eseguire la stessa operazione.
Il framework RD3 si preoccupa anche del gioco contrario: quando l’utente, effettua delle operazioni di input (tastiera/mouse) il tutto deve essere inviato al server, sempre con una logica di messaggi; il client invia messaggi di cambiamento, il server altera il suo stato e reinvia altri messaggi al framework RD3 per aggiornarlo.
I messaggi Server Client sono immediati: appena varia lo stato sul server viene avvisato il client; non possiamo dire uguale dei messaggi Client Server perché vengono gestiti tramite una coda: solo in determinati momenti i messaggi vengono inviati (il tutto realizzato per minimizzare le interazioni).
Alcuni messaggi, reputati urgenti, vengono invece recapitati immediatamente insieme a tutta la coda presente.
Per esempio l’utente preme il pulsante Salva in un pannello: il client deve immediatamente avvisare il server dicendo che si desidera salvare, oppure l’utente fa clic su una voce di menu: il client avvisa subito il server bisognerà eseguire del codice Ho cercato di chiarirvi questo discorsi per ricordarvi che, sì le applicazioni Foundation sono Single Page Application, ma totalmente differenti da applicazioni Angular ad esempio in quanto il codice è sul server e non è sul client nel nostro caso. Torniamo all’esempio del cambio Località..cosa succede? L’utente cambia la Località, il cliente deve avvisare il server: ma siccome questo non risulta essere un messaggio urgente mette il messaggio in coda Ecco perché non cambia lo Stato…solo il server ha il codice necessario per alterare lo Stato ed ecco perché se facciamo Salva cambia: Salvare è un messaggio urgente, quindi il framework RD3 invia tutto.
Il server riceve la variazione della localita, allora ricalcola lo Stato, Salva i dati sul database e ritorna al client un messaggio che attesta l’avvenuto salvataggio e gli indica di cambiare il valore dello stato, il framework RD3 eseguirà la variazione.
Quindi come possiamo fare in modo che la modifica della Località venga inviata subito ? così il server si accorge e cambia lo Stato, .tante parola per arrivare a una operazione semplicissima da fare: ma ci tenevo a farvi comprendere il meccanismo che sta dietro.
Nel progetto, campo di pannello Località -> doppio clic, tra le proprietà spuntiamo l’opzione Attivo. Tutto qua, questo flag fa in modo che la variazione del campo diventi un messaggio urgente e quindi recapitato immediatamente.
La stessa cosa per il campo Copertina: il caricamento era prolisso proprio perché il server non veniva avvisato subito se spuntiamo Attivo anche per il campo Copertina vedrete che upload sarà immediato.
Compiliamo il progetto e proviamo.
Per concludere, tutte le volte che vogliamo un aggiornamento immediato dello stato, basta mettere il campo di pannello Attivo, in teoria potremmo metterli tutti Attivi, certo in quel caso lo scambio messaggi sarebbe continuo.
Dobbiamo prima di tutto capire esattamente il funzionamento delle applicazioni web Foundation: l’applicazione web è in esecuzione su un server applicativo ed invia il proprio stato ad un client, nella fattispecie ad un browser. Quando parliamo di stato di una applicazione intendiamo proprio la situazione generale dell’applicazione in esecuzione.
Nella parte client è sempre in esecuzione del codice javascript (quello che viene chiamato framework RD3); questo codice si preoccupa di riportare nel browser lo stato dell’applicazione che il server invia sotto forma di messaggi.
Esempio l’applicazione richiede l’apertura di una videata? Lo stato applicativo server cambierà con l’aggiunta di una nuova videata e la comunicazione viene inviata tramite messaggi al client per chiedere di eseguire la stessa operazione.
Il framework RD3 si preoccupa anche del gioco contrario: quando l’utente, effettua delle operazioni di input (tastiera/mouse) il tutto deve essere inviato al server, sempre con una logica di messaggi; il client invia messaggi di cambiamento, il server altera il suo stato e reinvia altri messaggi al framework RD3 per aggiornarlo.
I messaggi Server Client sono immediati: appena varia lo stato sul server viene avvisato il client; non possiamo dire uguale dei messaggi Client Server perché vengono gestiti tramite una coda: solo in determinati momenti i messaggi vengono inviati (il tutto realizzato per minimizzare le interazioni).
Alcuni messaggi, reputati urgenti, vengono invece recapitati immediatamente insieme a tutta la coda presente.
Per esempio l’utente preme il pulsante Salva in un pannello: il client deve immediatamente avvisare il server dicendo che si desidera salvare, oppure l’utente fa clic su una voce di menu: il client avvisa subito il server bisognerà eseguire del codice Ho cercato di chiarirvi questo discorsi per ricordarvi che, sì le applicazioni Foundation sono Single Page Application, ma totalmente differenti da applicazioni Angular ad esempio in quanto il codice è sul server e non è sul client nel nostro caso. Torniamo all’esempio del cambio Località..cosa succede? L’utente cambia la Località, il cliente deve avvisare il server: ma siccome questo non risulta essere un messaggio urgente mette il messaggio in coda Ecco perché non cambia lo Stato…solo il server ha il codice necessario per alterare lo Stato ed ecco perché se facciamo Salva cambia: Salvare è un messaggio urgente, quindi il framework RD3 invia tutto.
Il server riceve la variazione della localita, allora ricalcola lo Stato, Salva i dati sul database e ritorna al client un messaggio che attesta l’avvenuto salvataggio e gli indica di cambiare il valore dello stato, il framework RD3 eseguirà la variazione.
Quindi come possiamo fare in modo che la modifica della Località venga inviata subito ? così il server si accorge e cambia lo Stato, .tante parola per arrivare a una operazione semplicissima da fare: ma ci tenevo a farvi comprendere il meccanismo che sta dietro.
Nel progetto, campo di pannello Località -> doppio clic, tra le proprietà spuntiamo l’opzione Attivo. Tutto qua, questo flag fa in modo che la variazione del campo diventi un messaggio urgente e quindi recapitato immediatamente.
La stessa cosa per il campo Copertina: il caricamento era prolisso proprio perché il server non veniva avvisato subito se spuntiamo Attivo anche per il campo Copertina vedrete che upload sarà immediato.
Compiliamo il progetto e proviamo.
Per concludere, tutte le volte che vogliamo un aggiornamento immediato dello stato, basta mettere il campo di pannello Attivo, in teoria potremmo metterli tutti Attivi, certo in quel caso lo scambio messaggi sarebbe continuo.
Ultima modifica: 07/02/2021 / Validità: da 20.5.8000