2012-02-21 25 views
5

Contexto

me di cuenta de que en Twitter, la página de perfil se muestra de diferentes maneras dependiendo de cómo se llama:¿Cómo Twitter muestra mi perfil al instante?

  1. Al hacer clic en el enlace Perfil en el menú, el DOM y la última los tweets se cargan y la página se muestra en ~ 4 segundos. Cada vez.
  2. Usando el atajo de teclado GP (o el enlace de la izquierda), la página se muestra instantáneamente.

detalles

  • me di cuenta de que el perfil debe haber sido mostrado recientemente para GP instante muestra la página.
  • Al cerrar y abrir el navegador, el perfil debe mostrarse de nuevo para GP muestra instantáneamente la página.

Investigación

Así que al principio pensé que Twitter podría utilizar una variable de sesión serverside para almacenar datos. Luego descubrí un uso de localStorage en el código fuente de Twitter. Lo confieso, DOM storage no me es familiar y el código JavaScript de Twitter no se puede leer. Así que no estoy seguro de que utilicen localStorage para almacenar el perfil.

Pregunta

ninguna hipótesis o informaciones sobre los vínculos de almacenamiento Twitter DOM/almacenamiento de las sesiones?

Respuesta

5

Esta es una pregunta interesante, así que fui a Twitter e investigué un poco.

Al hacer clic en el nombre de mi perfil, el enlace se hace con AJAX. Veo que mi línea de tiempo se descarga. Pero, la página ya está cargada por adelantado, por lo que mi información ya está descargada.

Al hacer clic en el enlace de la izquierda, o con GP, solo muestra la página ya cargada (oculta, o en el objeto JavaScript, por lo que en la memoria). Simplemente mostrará su perfil ya descargado y AJAX descargará el feed (JSON).

La URL cambiará de https://twitter.com/#!/ a https://twitter.com/#!/wraldpyk (en mi caso).

Cuando hace clic en su perfil en el menú (arriba a la derecha) va al https://twitter.com/wraldpyk. Esto volverá a abrir la página y descargará todo. Tenga en cuenta que se lo redireccionará al https://twitter.com/#!/wraldpyk, y mientras tanto su línea de tiempo también se descarga (abra FireBug y vea las imágenes descargadas)

Por lo que yo sé, no hay almacenamiento local (excepto en JavaScript, como todos) está hecho. Todos los datos se descargan constantemente en la nueva carga de la página.

Lo mismo sucede cuando escribe gh cuando está en su perfil.(Y también con todos los demás accesos directos)

+0

Ok No entendí cómo un objeto JavaScript podría moverse de una página a otra. Busqué sin encontrar y finalmente me hice esta pregunta: [¿Cuál es el #! en las URL de Twitter para?] (http://stackoverflow.com/questions/3009380). Entonces 'https: //twitter.com/#! /' Y 'https: //twitter.com/#!/Wraldpyk' son una sola y misma página? –

+0

Sí, sí lo son. generalmente se usa para Anchors (http://www.hypergurl.com/anchors.html). No hace que la página se actualice. –

Cuestiones relacionadas