2012-02-01 2 views
7

Sembra che ci siano molte librerie e pacchetti (Crossroads.js, ecc.) Che supportano questa funzionalità di instradamento javascript, ma ho difficoltà a capire uno scenario in cui questo è prezioso.perché utilizzare il routing javascript?

Qualcuno ha voglia di passare da una minestra all'altra in situazioni in cui ciò è utile?

Il mio background è con la programmazione ASP.NET (web forms) e alcuni javascript/jquery amatoriali.

+0

Stai parlando di line-routing in un diagramma? –

+0

no, più sulla falsariga della funzionalità che si ottiene con un pacchetto come Crossroads.js. – skeej

+1

Oggigiorno il Javascript si sta evolvendo molto, ci sono molte tendenze nel renderlo più confortevole su larga scala, poiché non lo è. Ci saranno modelli solidi e buone pratiche, ma cose come crossroads.js sono pionieri su basi nuove. Pionieri geniali. – SoonDead

risposta

5

Offre l'opzione per gestire il comportamento del client senza dover ricaricare l'intera pagina come se si trattasse di casi in cui si gestirà il lato server di routing.

Si apre la possibilità di un design più reattivo e interattivo in quanto, invece di ricaricare l'intera pagina ogni volta che si cambia rotta, si è in grado di eseguire il rerender solo la parte del sito Web che cambia per un determinato percorso. Allo stesso tempo aiuta a ridurre il carico sul server riducendo la comunicazione del server client per inviare solo i dati richiesti per visualizzare una pagina per il client per gestirlo (renderizza le visualizzazioni ecc.)

Grazie all'utilizzo di backbone.js o altri framework mvc (-like) sei in grado di ridurre il tuo server per esporre solo l'API REST per lavorare e ricevere dati senza dover gestire il rendering e stai passando un po '- o anche più a volte - della logica al cliente.

La maggior parte delle app Web al giorno d'oggi sfruttano l'instradamento client-side, da GMail a Twitter.

+2

puoi dare un esempio specifico? quali sono i vantaggi rispetto a uno scenario in cui dispongo di un'app a singola pagina e ogni sezione principale presenta alcuni endpoint ajax esposti sul server che aggiornano la sezione della pagina corrispondente con il contenuto appropriato? – skeej

+2

Avere un routing adeguato piuttosto che i callback ajax sparsi qua e là significa che è molto più semplice ed elegante per l'utente, come per lui è ancora il buon vecchio internet con i suoi indirizzi URL puliti che possono aggiungere ai segnalibri, copiare e incollare su documenti, amici, ecc. e accedere facilmente allo stato dato della pagina/app semplicemente visitando l'indirizzo. Gli utenti si stanno abituando a sempre più esperienze interattive e senza soluzione di continuità e i browser sono sempre più veloci e veloci da consegnare. –

+0

È solo un passo avanti rispetto alle applicazioni pesanti di ajax e all'adattamento delle best practice che abbiamo appreso dallo sviluppo lato server e dai loro framework MVC. (non va bene :)) –

1

OK - Penso di capirlo meglio ora. È solo uno strato di astrazione tra una funzione chiamante e chiamata. Invece di collegare una dipendenza hardcoded tra il chiamante e il chiamato, è possibile introdurre un sistema di routing che collegherà i due in base ad alcune configurazioni e fornirà funzioni aggiuntive come la convalida o l'associazione di più callee a un chiamante. Quindi puoi fare riferimento alle tue azioni con maniglie riposanti (ad es. "/ GetCoffee/decaf") che possono anche essere costruite dinamicamente (dato che sono solo stringhe).

Sto ancora riflettendo sui vantaggi relativi di uno schema di routing rispetto alla creazione di un evento personalizzato.