Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

300
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda