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

154
Vistas
Trabajador del servicio: bloquee las solicitudes de recuperación solo en la carga inicial de la aplicación

Antecedentes: tengo una aplicación web Firebase que se carga y funciona perfectamente sin conexión (es decir, en modo avión) y en línea con una buena conexión. El problema son las conexiones muy débiles donde navigator.onLine es verdadero, pero la conexión es básicamente inutilizable. La aplicación se cuelga hasta que enciendo el modo avión. De acuerdo con los documentos del SDK de Firebase, no parece haber un método para initializeApp() sin conexión. Tengo habilitada la persistencia fuera de línea de Firestore y funciona muy bien una vez que se carga la aplicación.

Objetivo: usar el trabajador del servicio para bloquear las solicitudes de recuperación de la red durante aproximadamente 2 segundos devolviendo un error para "engañar" a Firebase para que piense que el dispositivo está desconectado y se carga al instante, luego desbloquea/permite todas las futuras solicitudes de recuperación como de costumbre

El problema: el código que encontré e implementé a continuación funciona muy bien inicialmente y la aplicación ahora se carga instantáneamente en todas las condiciones de la red, pero como Firebase intenta nuevamente cada 10 segundos para realizar solicitudes de búsqueda, el trabajador del servicio continúa para interceptarlos, lo cual no hago. no quiero

¿Cómo hago para que el siguiente código se ejecute una sola vez en un trabajador de servicio en la carga inicial?

 addEventListener("fetch", (event) => { event.respondWith( (async function () { console.log("blocking"); event.request.url.startsWith("https://") ? Response.error() : fetch(event.request); return setTimeout(() => { console.log("unblocked"); fetch(event.request); }, 3000); })() ); });
about 4 years ago · Juan Pablo Isaza
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