2012-02-21 10 views
5

Contesto

mi sono reso conto che in Twitter, la pagina del profilo viene visualizzata in modo diverso a seconda di come si chiama:In che modo Twitter visualizza il mio profilo istantaneamente?

  1. Cliccando sul link del profilo nel menu, il DOM e l'ultima i tweet sono caricati e la pagina viene visualizzata in ~ 4 secondi. Ogni volta.
  2. Utilizzando la scelta rapida da tastiera GP (o il collegamento a sinistra), la pagina viene visualizzata immediatamente.

dettagli

  • ho notato che il profilo deve essere stato di recente visualizzato per GP visualizza istantaneamente la pagina.
  • Chiudendo e aprendo il browser, il profilo deve essere nuovamente visualizzato per GP visualizza istantaneamente la pagina.

Investigation

Così in un primo momento ho pensato che Twitter potrebbe utilizzare una variabile di sessione serverside per memorizzare i dati. Poi ho scoperto un uso di localStorage nel codice sorgente di Twitter. Confesso che lo DOM storage non mi è familiare e il codice JavaScript di Twitter è illeggibile. Quindi non sono sicuro che usino localStorage per archiviare il profilo.

Domanda

ogni ipotesi, informazioni o link su Twitter DOM memorizzazione/archiviazione sessione?

risposta

5

Questa è una domanda interessante, quindi sono andato su Twitter e ho fatto alcune indagini personalmente.

Facendo clic sul nome del mio profilo, il collegamento viene eseguito con AJAX. Vedo scaricata la mia cronologia. Ma la pagina è già stata caricata in anticipo, quindi anche le mie informazioni sono già state scaricate.

Cliccando sul link a sinistra, oppure con GP basta visualizzare la pagina già caricata (nascosto, o in oggetto JavaScript, così in memoria). Visualizzerà il tuo profilo già scaricato e AJAX scaricherà il feed (JSON).

L'URL cambia da https://twitter.com/#!/ a https://twitter.com/#!/wraldpyk (nel mio caso).

Quando si fa clic sul profilo nel menu (in alto a destra) si passa a https://twitter.com/wraldpyk. Questo riaprirà la pagina e scaricherà tutto. Nota che verrai reindirizzato su https://twitter.com/#!/wraldpyk e nel frattempo anche la tua timeline verrà scaricata (apri FireBug e vedi le immagini e i feed scaricati)

Per quanto posso dire, nessuna memoria locale (eccetto in JavaScript, come fanno tutti) è fatta. Tutti i dati vengono costantemente scaricati sul nuovo caricamento della pagina.

La stessa cosa accade quando si digita gh quando sul proprio profilo.(E anche con tutte le altre scorciatoie)

+0

Ok Non ho capito come un oggetto JavaScript possa spostarsi da una pagina all'altra. Ho cercato senza trovare e alla fine mi ha fatto questa domanda: [What's the #! in URL di Twitter per?] (http://stackoverflow.com/questions/3009380). Quindi 'https: //twitter.com/#! /' E 'https: //twitter.com/#!/Wraldpyk' sono una singola e stessa pagina? –

+0

Sì, lo sono davvero. di solito viene utilizzato per Ancore (http://www.hypergurl.com/anchors.html). Non fa aggiornare la pagina. –

Problemi correlati