Estoy generando varias ventanas emergentes (ilimitadas) con una identificación única específica para cada una de las cuales tienen configuraciones propias que separan las rutas en el dominio en el que pueden mostrarse.
por ejemplo, imagina que tenemos un sitio web como www.site.com y queremos mostrar algunas ventanas emergentes en ellas, como una ventana emergente en la ruta raíz principal / y otra en /acerca de y otra en /productos y así sucesivamente...
Quiero rastrear su estado para usuarios específicos para mostrarles en algunos horarios, por ejemplo, la ventana emergente raíz principal en cada visita, la ventana emergente / acerca de cada 7 días.
La razón para sugerir que la cookie es usar su tiempo de vencimiento y verificar si existe para mostrar todo eso.
por ejemplo, si primero se carga la ventana emergente en / acerca de y se establece una cookie única con un tiempo de caducidad de 7 días, puedo verificar el indicador de cookies cada vez que el usuario visita la ruta y si todavía existe significa que no se muestra.
Se me ocurrió una solución para usar cookies para eso, pero parece un poco extraño debido a la parte dinámica de este problema, en el que necesito crear muchas cookies si quiero rastrearlas todas de manera única.
cualquier ayuda es apreciada. Gracias.
Probablemente lo más fácil sea crear su nombre de cookie con alguna clave predecible basada en otras propiedades. Por ejemplo, la ruta en sí podría ser suficiente para el nombre de la cookie, algo como:
const name = `cookie-${path}`Dado que la ruta puede contener caracteres especiales (como la barra inclinada), puede reemplazarlos con un guión. Solo tenga cuidado ya que los nombres de las cookies solo pueden tener ASCII, por lo que si las rutas pueden ser UTF-8 u otra codificación (como con caracteres no latinos), esto podría ser complicado.
O bien, podría tener solo una cookie cuyo valor sea una cadena JSON que contenga los distintos bits de información:
const state = { '/': 5, '/about': 10, '/products': 11 }; document.cookie = `popups=${JSON.stringify(state)}`; Luego, cuando sea necesario, puede leer la cookie, JSON.parse() el valor, leer lo que necesite y, si necesita actualizar, simplemente actualice el objeto analizado y luego guárdelo nuevamente. Este es probablemente el método más fácil e infalible, por lo que probablemente lo seguiría. Esto todavía tiene la probabilidad de que solo sea compatible con ASCII, por lo que si tiene caracteres que no son ASCII, también podría hacer básicamente el mismo enfoque, pero almacenarlo en localStorage en su lugar.