React.js + Flux, risposta immediata durante la cronologia back / forward

-1

In Instagram (web), quando fai clic sulle frecce indietro / avanti, ho notato che il contenuto non viene caricato dal server e viene immediatamente visualizzato. Dopo aver letto i documenti su react.js + flux, ho avuto questa comprensione:

Action -> Dispatcher -> Stores ... in cui stores ascolta le modifiche e carica i nuovi dati dal server in un array ad esempio: {"data": post_id: 10}

Voglio davvero ottenerlo, dal momento che sto caricando il contenuto utilizzando lo stato push di ajax + (%codice%).
E il problema con l'utilizzo di questo, è che tutto il contenuto caricato su scroll (ad es. post) va perso durante la navigazione. E quando torni indietro, inizi dall'inizio, quindi devi scorrere fino al punto in cui ti sei fermato l'ultima volta. Ho notato questo problema sul sito di Facebook, ma non su Instagram ...

Quindi le mie domande sono:

  • La risposta immediata viene dai negozi? Se sì in che formato e in che modo?
  • react.js è l'unico modo per ottenere ciò, magari usando backbone o angolare ?
  • Perché il sito web di Facebook non usa questo e Instagram?

Per favore, dammi qualche esempio (codice) o link, dato che sono nuovo di questo..Grazie

    
posta user6227254 14.05.2016 - 20:53
fonte

2 risposte

0

Penso che il modo più semplice per implementare questo comportamento sia quello di memorizzare in cache le risposte ajax da qualche parte.

In questo modo non dovresti modificare alcun codice react / flux (o qualsiasi framework). Quando fai clic sul pulsante Indietro, l'API restituisce un risultato memorizzato nella cache anziché effettuare una nuova richiesta e i dati saranno immediatamente disponibili.

Ecco un'implementazione ingenua con la funzione memoize () di lodash:

var fetchPage = function(id) {};
var fetchPageCached = _.memoize(fetchPage);

In questo modo, se chiami fetchPageCached() due volte, verrà restituito lo stesso risultato ma verrà emessa una sola richiesta Ajax.

Detto questo, non so perché Facebook non memorizzi nella cache le pagine precedenti ...

    
risposta data 18.05.2016 - 17:08
fonte
0

Si scopre che questa funzione si chiama viaggio nel tempo e proviene da flusso o redux. Io uso redux, vai a dare un'occhiata: link

    
risposta data 02.06.2016 - 11:30
fonte

Leggi altre domande sui tag