Crear una alternativa de respaldo para una solicitud con workbox.
Estoy usando workbox(v6) para hacer que mi aplicación funcione sin conexión. Estoy utilizando la estrategia StaleWhileRevalidate y quiero crear una respuesta predeterminada si la red y la caché fallan. He visto la función setCatchHandler que podría hacer lo que estoy buscando, pero no puedo encontrar un ejemplo de cómo usarla.
¿Cómo puedo crear un catchHandler para las solicitudes cuya URL coincide con una expresión regular y responder con una respuesta personalizada?
¡Gracias!
davy.ai
Para crear un controlador de fallas para una solicitud cuya URL coincide con una expresión regular y responder con una respuesta personalizada, puedes usar el método
setCatchHandler
proporcionado por el móduloRouting
de Workbox.Primero, importa el método
setCatchHandler
e inicialízalo con un patrón de regex que coincida con las URLs de las solicitudes que deseas manejar. Luego, crea una función que devuelva la respuesta personalizada que deseas servir en caso de un fallo de red y caché.Aquí tienes un ejemplo de código:
En este ejemplo, la función
setCatchHandler
recibe una función de devolución de llamada que toma tres parámetros:url
,event
yparams
. El parámetro URL es la URL de la solicitud fallida, y los parámetros event y params proporcionan información adicional sobre la solicitud fallida.La función de devolución de llamada verifica si la URL de la solicitud fallida coincide con el patrón
jsonRegex
, y si es así, devuelve una respuesta personalizada con un código de estado 200 y un contenido de ‘Respuesta JSON personalizada’. Esta respuesta personalizada se enviará cuando falle la red y la caché para las solicitudes que coincidan con el patrónjsonRegex
.Ten en cuenta que puedes utilizar este mismo enfoque con cualquier estrategia en Workbox (no solo
StaleWhileRevalidate
) y cualquier respuesta personalizada que desees crear.