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

118
Visualizações
trabajador de servicio - Almacenamiento en caché progresivo para una aplicación web progresiva - Cómo cargar grupos de archivos paso a paso

Aquí hay un trabajador de servicio que almacena en caché solo los archivos básicos de inicio de la aplicación,

 self.addEventListener("fetch", event => { event.respondWith( caches.match(event.request) .then( cachedResponse => { return cachedResponse || fetch(event.request); } ) ); }); const cacheName0 = "bare-bones-of-the-app"; const mainResourcesToPrecache = [ "index.html", "app.js", "style.css" ]; self.addEventListener("install", event => { event.waitUntil( caches.open(cacheName0).then(cache => { return cache.addAll(mainResourcesToPrecache); }) ); });

Hasta aquí todo bien. Ahora digamos que este PWA es un juego y el usuario progresa a medida que completa un nivel tras otro. Y digamos que tenemos,

 const cacheName1 = "level-1"; const resourcesForLevel1 = [ "somepicture.jpg", "someartwork.png", "somesound.mp3" ]; const cacheName2 = "level-2"; const resourcesForLevel2 = [ "anotherpicture.jpg", "anotherartwork.png", "anothersound.mp3" ]; // etc

En este caso, ¿cómo despertamos al trabajador del servicio con una función que se activa en el hilo principal y, por lo tanto, hacemos que el navegador obtenga los archivos por adelantado cuando el usuario llega a ciertos puntos en la aplicación?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Lo bueno de la API de almacenamiento en caché es que los mismos cachés están expuestos tanto en ServiceWorkerGlobalScope como en el contexto de Window . Entonces puede hacer lo que sugiere sin tener que enviar un mensaje al trabajador del servicio pidiéndole que almacene cosas en caché por usted.

Lo importante es asegurarse de que está utilizando los mismos nombres de caché en ambos contextos.

 async function cacheLevel(levelNumber) { // Make sure this matches the cache name you use in the SW. const cacheName = `level-${levelNumber}; // Assume there's a levelNumber => URLs mapping function. const urls = getURLsForLevel(levelNumber); const cache = await caches.open(cacheName); await cache.addAll(urls); }

(Usar postMessage() para comunicarse con el trabajador del servicio también es una opción, pero no es obligatorio para su caso de uso).

about 4 years ago · Juan Pablo Isaza Relatório
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