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

153
Visualizações
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 à 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