Tengo un código en mi serviceworker que verifica si un sitio web está en línea:
var check = false; setInterval(checkOnline, 60000);Este código verifica cada minuto en segundo plano si el sitio web está en línea. Este código:
function checkOnline() { fetch(www.example.com) .then(response => { }) .catch(error => { const title = 'hhh'; const options = { body: 'hhh', icon: 'images/icon.png', badge: 'images/badge.png' }; self.registration.showNotification(title, options) check = true; }); }El problema es que cuando establece el booleano en verdadero en esta función, el trabajador del servicio ejecuta la página nuevamente y el booleano está configurado en falso de manera predeterminada, pero necesito que se mantenga verdadero para que solo haga algo una vez, y no todo el tiempo. el código va a la captura. ¿Cómo puedo solucionar esto? Solo quiero que, si el sitio web está fuera de línea, solo muestre la notificación una vez. Pero sigue ejecutando el código, por lo que la notificación llegará cada minuto si el sitio web está fuera de línea. Todo este código está en mi serviceworker porque debe verificarse incluso si el navegador no está abierto. Esta es una aplicación PWA.