Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

234
Visualizações
Cómo almacenar en caché una tabla de carga diferida sin biblioteca externa

Así que tengo una tabla que actualmente estoy cargando de forma diferida y quiero almacenar en caché los datos de las 5 páginas más actuales. Cuando un usuario hace clic en el botón de avance o retroceso, enviaré el número de página al que se dirige y la dirección en la que se dirige ( anterior o siguiente ).

En mi función getData, verificaré si la página a la que van existe en una matriz de datos en caché o no. En caso afirmativo, enviaré esos datos sin hacer una llamada a la API. Si no, veré la dirección a la que van. Por ejemplo, si van 1 -> 5, luego la página 6, eliminaré la página 1 de la matriz cachedData , luego insertaré la página 6, y si van hacia atrás 6 -> 1, eliminaré la página 6, porque es la más alejada de la página actual, y empuje la página 1 en su lugar. A continuación se muestran las implementaciones:

 const cachedData = []; async function getData({ payload }) { const { pageNumber, ...currentPageInfo } = payload; const cachedPage = cachedData.find(page => page.pageNumber === pageNumber); if (!cachedPage) { const response = await fetchData(currentPageInfo); if (response) { if (cachedData.length >= 5) { if (currentPageInfo.direction === "next") cachedData.shift(); cachedData.pop(); } const { pageInfo, dataList } = response.data; cachedData.push({ dataList, pageNumber, pageInfo, }); cachedData.sort((x, y) => x.pageNumber - y.pageNumber); dispatch(getDataSuccess({ res: dataList, pageInfo })); } } else { dispatch( getDataSuccess({ res: cachedPage.dataList, pageInfo: cachedPage.pageInfo, }) ); } }

Actualmente está funcionando, pero no estoy seguro de estar en el camino correcto. Entre cambiar, clasificar y encontrar, el rendimiento no es muy bueno. La lógica es extraña porque estamos usando nuestra propia forma de paginación, y no el enfoque habitual de saltar y tomar . Pero lo importante es si se puede mejorar algo en este código. Muchísimas gracias.

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda