Domanda

Qualcuno mi può punto a qualche codice di esempio sul modo migliore per fare la cache durante il caricamento le parti dinamiche di una pagina utilizzando JavaScript?

Il mio esempio canonico comporta una pagina in cui non cambia mai niente altro che l'utente è loggato status e nome utente nella parte superiore della pagina. La modifica di questo testo attraverso jQuery e una richiesta AJAX è abbastanza facile, ma dal momento che lo sto facendo su $(document).ready(), se si guarda in fretta, si può vedere il caricamento della pagina con qualcosa come "Clicca qui per accedere" prima che i fuochi richiesta AJAX e aggiornamenti quella sezione della pagina.

Modifica chiarimenti :

Se io cache l'intera pagina, accade quanto segue.

  1. L'utente A richiede la pagina
  2. pagina non è nella cache , quindi applicazione genera HTML con "Ciao utente A" nell'angolo in alto a destra
  3. L'utente B richiede la pagina
  4. pagina viene memorizzato nella cache , quindi applicazione serve che noi così com'è - tra cui il bit "Hi Utente A" <-. Questa è la parte che voglio aggiornare dinamicamente

Idealmente, al punto 2, la pagina otterrebbe cache senza il bit "Ciao Utente A", in modo che quando qualcuno richiede la pagina, faccio una semplice richiesta Ajax per ottenere il saluto e poi spingerlo nel DOM.

Sto assumendo javascript è la strada da percorrere, ma sto pensando che ci deve essere un modo migliore di aspettare $(document).ready() tale che il rendering della pagina in modo più naturale.

Se è importante (anche se non pensa che dovrebbe, come una soluzione che si applica a HTML statico sarebbe anche il lavoro per quello che sto facendo), sto usando rotaie 2.3.x e jQuery.

È stato utile?

Soluzione 2

Aha! C'è un Railscast che fa esattamente quello che voglio!

Rails-y bontà può essere trovato qui: http://railscasts.com/episodes / 169-dinamico-page-caching

Altri suggerimenti

vorrei caricare lo stato dell'utente inizialmente nella pagina principale sul server, utilizzando la stessa cosa che genera la risposta AJAX. Poi, quando l'utente modifica lo stato, aggiornarlo utilizzando AJAX lato client.

In questo modo, la pagina iniziale è lo stato corretto, ma può ancora cambiare quando le esegue un'azione utente.

finta il metodo getStatus() genera la correttezza del codice HTML per qualsiasi stato l'utente è in. Nella pagina, avrei un <div> che contiene tali informazioni. Sul lato server, chiamata getStatus() (utilizzando PHP a scopo esemplificativo):

<div id="status"><?php =getStatus() ?></div>

Quindi avere la vostra richiesta di ritorno di AJAX getStatus() e aggiornare i contenuti <div id="status">.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top