Hola, estoy creando una sección de comentarios en mi sitio web, pero no quiero obtener todos los comentarios de mi base de datos cuando alguien actualice la página. Quiero resolver este problema almacenando comentarios en la matriz, pero cuando uso
export const comments = writable(localStorage.getItem("comments") || []);no crea una matriz en mi almacenamiento local, ¿hay alguna forma de almacenar una matriz en el almacenamiento local con svelte o debería manejar este problema de manera diferente?
Si desea almacenar algo en el usuario de almacenamiento local:
localstorage.setItem('comments', JSON.stringify(arr_of_cmnts);Ahora, supongamos que cuando se abre su página, verifica si su almacenamiento local tiene comentarios usando algo como:
//In svelte let arr_of_cmnts = []; export const comments = writable(localStorage.getItem('comments')|| JSON.stringify(arr_of_cmnts)); //js **normally** const cmnts = JSON.parse(localstorage.getItem('comments')); if(cmnts && cmnts.length > 0) //use this array else //call server to get comnts and store them in localstorageEn el bloque if, ¿cómo sabe si los comentarios en localstorage son los más recientes? Tal vez alguien ha puesto un nuevo comentario de la última vez que lo visitó.
Tal vez haya algunas soluciones para esto, como consultar a db sobre la marca de tiempo de los últimos comentarios y luego verificar si los comentarios almacenados están obsoletos o no. Otro enfoque del problema (no tener que consultar su base de datos siempre) es usar un caché (tal vez redis), para publicar comentarios, y cada vez que alguien escribe un nuevo comentario, junto con la actualización de la base de datos, también puede actualizar su caché. Esto hace que la solicitud de lectura sea más rápida.