Estoy haciendo un sitio web con desplazamiento infinito. Es decir, a medida que el usuario se desplaza hacia la parte inferior de la página, se agrega un nuevo bloque de contenido al final. Es muy similar a Facebook. Aquí está un ejemplo de 3 páginas cargadas:¿Cómo guardo una pila infinita de contenido AJAX cuando un usuario abandona la página?
_________
| |
| 0 |
|_________|
| |
| 1 |
|_________|
| |
| 2 |
|_________|
Cuando el usuario hace clic en algo en la última página, los llevo a una página de detalle separada. Pero si el usuario vuelve a hacer clic en la página de resultados de búsqueda, no tengo memoria de su ubicación anterior y debo cargar la página 0 nuevamente.
_________
| |
| 0 |
|_________|
sé de algunos métodos de la vieja escuela para resolver esto, pero cada uno tiene algunos problemas serios:
URL hash
pude actualizar la dirección URL cada vez que se carga una nueva página. Por ejemplo: www.website.com/page#2. Cuando el usuario va a la página de detalles y la espalda, la URL me dice que la última página cargada, por lo que se carga por él:
_________
| |
| 2 |
|_________|
Pero esto es pobre experiencia de usuario. Solo la página 2 está cargada. El usuario no puede desplazarse hacia arriba para ver contenido anterior. No puedo simplemente cargar las páginas 0, 1 y 2 porque eso sobrecargaría el servidor, teniendo en cuenta que el botón Atrás representa el 50% del tráfico web (estudio de Jacob Nielsen).
almacenamiento local
cookies no tienen la capacidad de almacenamiento para almacenar muchas páginas de datos. Local Storage debe tener suficiente espacio. Una idea es almacenar todas las páginas cargadas en el almacenamiento local. Cuando el usuario vuelve a los resultados de búsqueda, cargo desde el almacenamiento local en lugar de presionar el servidor. El problema con este enfoque es que una gran parte de mis usuarios están en buscadores que no tienen support local storage (IE7).
¿Por qué la carga de todas las páginas que ha mostrado a la vez sobrecarga el servidor al solicitarlas de a una por vez? – Tejs
... con una cantidad infinita de memoria. – Phrogz
@Tejs: Formulé mi pensamiento incorrectamente. Me refiero a que cargar cientos de páginas al mismo tiempo es lento para el usuario y genera una carga innecesaria en el servidor. – JoJo