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

306
Visualizações
¿Cómo cargar un script externo en el trabajador de servicio que funcionará después de detenerse?

No puedo encontrar esta información. ¿Cómo usar importScripts que funcionarán después de que la página esté inactiva y se actualice después de un tiempo?

tengo este codigo:

 self.addEventListener('install', function(evt) { self.skipWaiting(); self.importScripts('https://cdn.jsdelivr.net/npm/idb-keyval/dist/umd.js'); });

También he intentado:

 self.addEventListener('install', function(event) { event.waitUntil( self.importScripts('https://cdn.jsdelivr.net/npm/idb-keyval/dist/umd.js') ); }); self.addEventListener('activate', (event) => { event.waitUntil( self.importScripts('https://cdn.jsdelivr.net/npm/idb-keyval/dist/umd.js') ); });

y cuando abro el sitio después de unos minutos, aparece un error sobre la biblioteca que falta.

¿Cuál es la forma correcta de cargar un archivo con importScripts que funcionará? Solo quiero seguir usando esta biblioteca.

No puedo encontrar esta información en ninguna parte, no hay muchos ejemplos de cómo usar bibliotecas externas en los trabajadores de servicio.

No tiene que ser importScripts , pero esta es la única forma que conozco de importar un archivo externo en Service Worker. No estoy seguro de si ha utilizado módulos ES para eso.

EDITAR :

También he probado esto:

 self.addEventListener('install', function(event) { self.skipWaiting(); self.importScripts('https://cdn.jsdelivr.net/npm/idb-keyval/dist/umd.js'); self.idb = idbKeyval; }); self.addEventListener('activate', function(event) { if (!self.idb) { self.skipWaiting(); self.importScripts('https://cdn.jsdelivr.net/npm/idb-keyval/dist/umd.js'); self.idb = idbKeyval; } });

Establecí un punto de interrupción en el evento de activate y no se ejecutó de la misma manera que la instalación y mi variable se eliminó.

Estaba probando al detener el trabajador del servicio en las herramientas de desarrollo y actualizar. Cada vez que obtuve un error sobre la falta de idb .

También intenté usar la variable let local en el trabajador del servicio, obtuve los mismos resultados idb no está definido, después de que se detuvo el trabajador del servicio.

EDIT2 :

Le pregunté al autor en GitHub , ya que esto puede ser un problema con la biblioteca.

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

0

¿Cuál es la forma correcta de cargar un archivo con importScripts que funcionará? Solo quiero seguir usando esta biblioteca.

Por lo general, usaría importScripts en el ámbito global del trabajador del servicio, fuera de las devoluciones de llamada de cualquier evento:

 importScripts('https://cdn.jsdelivr.net/npm/idb-keyval/dist/umd.js'); self.addEventListener('install', function (evt) { // your install handler // `self.idbKeyval` should be available here, as well as anywhere else });
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