Creo que está haciendo la pregunta incorrecta. Lo que es más rápido durante una sesión activa es básicamente irrelevante, porque ambos se almacenan localmente, y la búsqueda local es casi instantánea (frente a la búsqueda remota). (Una advertencia: no todos los navegadores confían en los encabezados de almacenamiento en caché, pero generalmente se inclina más hacia el almacenamiento en caché en exceso, en lugar del almacenamiento en caché.)
Sin embargo, su situación de ejemplo es suponer que nunca se borra el caché del navegador . En general, esto es incorrecto: el usuario no solo puede borrar la caché cada vez (o configurarla para que se borre automáticamente), sino que el navegador puede decidir eliminar los datos almacenados en caché de su sitio web (dependiendo del espacio, generalmente).
En su lugar, debe pensar en la longevidad de los datos y en la frecuencia con que el usuario los volverá a buscar.
Si esta información es algo a lo que solo pueden acceder ocasionalmente, entonces debe confiar en el mecanismo de caché incorporado del navegador. Esto permite que el navegador lo elimine cuando ya no sea necesario.
Sin embargo, si los datos son algo que se carga regularmente o necesita cada visita al sitio, entonces debe usar localStorage
. El almacenamiento local es no se borra automáticamente con la memoria caché, y de hecho solo suele vaciarse si el usuario borra las cookies para ese sitio web. Esto permite que la información se conserve durante mucho más tiempo, incluso si el sitio web no se visita con la frecuencia suficiente para mantener el caché actualizado. Pero de repente ahora será responsable de mantener esa base de datos de información.
Finalmente, la pregunta más importante: como desarrollador, ¿vale la pena la relación costo-beneficio del desarrollo de una solución más compleja basada en localStorage
? En otras palabras, ¿verá suficientes beneficios para el usuario final al cachear una búsqueda 1-2s, o está hablando de una cantidad significativa de información, donde el usuario verá una ganancia de más de 30 segundos?
A modo de ejemplo, para una aplicación Web grande, compleja he desarrollado un tiempo atrás, solía localStorage
para almacenar la gran cantidad de bibliotecas JS. Al volver a visitar el sitio, simplemente se analizaron desde la copia local (después de verificar el hash). Esta solución permitió a una amplia gama de navegadores ver una reducción masiva en el tiempo de inicio, incluso si el caché se borró. (No estoy diciendo que este es un buen uso, pero funcionó en el momento.)