Gli elenchi a discesa a cascata sono un esempio della necessità di mantenere lo stato dell'applicazione?

1

Se ho una pagina con tre elenchi a cascata, è un esempio di controllo dello stato di un'applicazione Web (supponiamo che faccia parte di un'applicazione più grande)?

Voglio assicurarmi di comprendere la gestione dello stato e la necessità di un sistema come Vuex e Redux e di avere lo schema del negozio, un singleton per farcela, riducendo la complessità, e così via so che la gente di React e Redux ha detto sarebbe come indossare gli occhiali, sai se ne hai bisogno, e inoltre, questo potrebbe essere fatto abbastanza facilmente senza strutture.

Ma, in generale, l'uso di un elenco a discesa a cascata è un esempio, anche se incredibilmente semplice, di tenere traccia dello "stato"?

Per riferimento a un elenco a discesa, consultare link

jQuery(function($) {
    var locations = {
        'Germany': ['Duesseldorf', 'Leinfelden-Echterdingen', 'Eschborn'],
        'Spain': ['Barcelona'],
        'Hungary': ['Pecs'],
        'USA': ['Downers Grove'],
        'Mexico': ['Puebla'],
        'South Africa': ['Midrand'],
        'China': ['Beijing'],
        'Russia': ['St. Petersburg'],
    }

    var $locations = $('#location');
    $('#country').change(function () {
        var country = $(this).val(), lcns = locations[country] || [];

        var html = $.map(lcns, function(lcn){
            return '<option value="' + lcn + '">' + lcn + '</option>'
        }).join('');
        $locations.html(html)
    });
});

Non penso di essere stato chiaro. Sto solo chiedendo se lo scenario dropdownlist è un esempio di stato sul frontend. Non volevo dire che fosse il modo migliore o un buon candidato, solo se è un esempio, anche se incredibilmente semplice. Un altro modo, se avessi un pulsante che cambia i colori in base ad un'altra scelta sulla pagina. È questo "stato"? Sto solo cercando di capire cosa costituisce "Stato". Non è davvero una domanda su Vuex, Redux o simili.

    
posta johnny 30.10.2018 - 14:58
fonte

2 risposte

0

I valori vengono memorizzati nella cache sul client. Se questo è tutto ciò che viene fatto, stai essenzialmente replicando ciò che il browser già fa: caching roba da Internet.

Per iniziare, basta fare affidamento su buone chiamate AJAX adattate usando una richiesta GET per ottenere ogni volta i dati per i dropdown. Chiedi al server di inviare le intestazioni di controllo della cache appropriate. Il browser esegue la memorizzazione nella cache per te.

L'ordinamento e il filtraggio delle opzioni possono essere gestiti lato server, semplificando il JavaScript. Assicurati di autenticare le tue richieste AJAX.

Se è necessario inviare informazioni sensibili al fine di filtrare le opzioni, ad esempio informazioni fiscali o altri tipi di informazioni personali, passare a una richiesta POST. In questo caso, la memorizzazione nella cache del server può alleviare molti problemi di prestazioni.

Solo i menu a discesa di riempimento automatico non giustificano il passaggio a un framework di front end pesante. Avrai bisogno di altri usi per quei grandi framework JavaScript prima che valga la pena scrivere del JavaScript aggiuntivo per fare qualcosa che il browser già fa.

    
risposta data 30.10.2018 - 17:59
fonte
0

Gestione dello stato significa mantenere l'ultimo stato di selezione degli utenti attraverso i viaggi sul server prima che la pagina compili l'invio finale. Nel tuo caso se uno dei tuoi menu a tendina dipende dalla selezione del precedente elenco a discesa (comune) per essere popolato, qualsiasi viaggio al server imposterà il primo elenco a discesa nello stato originale e questo è ciò che non vorresti per esempio, risolvilo utilizzando Ajax (consigliato) o salva la selezione del primo menu a discesa in sessione, ad esempio.

Torna alla tua domanda sull'utilizzo di Vuex e Redux: dipende dal framework che stai usando nello stato di ASP.net è gestito dall'applicazione. Per quanto mi riguarda personalmente, non utilizzerei la libreria JavaScript (Vuex o Redux) per la gestione dello stato (JavaScript potrebbe essere disabilitato dai tuoi utenti). Seguirò la raccomandazione di Microsoft e mi impegnerò a progettare la gestione dello stato.

Alcune delle cose su cui riflettere per scegliere cosa usare (in ASP.net) sono:

  • Quante informazioni hai bisogno di memorizzare?
  • Il client accetta i cookie permanenti o in memoria?
  • Vuoi memorizzare le informazioni sul client o sul server?
  • Le informazioni sono sensibili?
  • Quali criteri di prestazioni e larghezza di banda hai per la tua applicazione?
  • Quali sono le funzionalità dei browser e dei dispositivi che hai scelto come target?
  • Hai bisogno di memorizzare le informazioni per utente?
  • Quanto tempo è necessario per memorizzare le informazioni?
  • Hai una Web farm (più server), un Web garden (più processi su una macchina) o un singolo processo che serve l'applicazione?

quindi per il lato client è possibile utilizzare uno dei seguenti:

  • Visualizza stato
  • Stato di controllo
  • Campi nascosti
  • Cookie
  • Stringhe di query

e per il lato server è possibile utilizzare uno dei seguenti:

  • Stato dell'applicazione
  • Stato sessione
  • Proprietà del profilo
  • Supporto per il database

Per leggere di più sull'argomento della gestione dello stato in ASP.net, ecco il link: link

    
risposta data 30.10.2018 - 18:25
fonte

Leggi altre domande sui tag