Ir al contenido

Consideraciones y límites

Antes de integrar tabus-js en tu app, ten presentes estos comportamientos por diseño:

const bus = new Tabus<{ data: number }>("app");
const handleData = (value: number) => console.log(value);
bus.on("data", handleData);
function send(value: number) {
bus.emit("data", value);
handleData(value); // procesamiento local explícito
}
  • Después de destroy(), on() y emit() son no-ops seguros. No lanzan errores ni tienen efecto — simplemente no hacen nada. No hace falta comprobar manualmente si una instancia sigue viva antes de usarla.

  • Cero dependencias en tiempo de ejecución. tabus-js solo usa APIs nativas del entorno: BroadcastChannel, crypto.randomUUID y setTimeout. No hay nada que actualizar por dependencias transitivas.

  • El orden de entrega no está garantizado entre pestañas con carga distinta. Si dos pestañas emiten casi al mismo tiempo, el orden en que cada peer los recibe depende del scheduler del navegador, no de un reloj global.

  • tabId es efímero. Se genera por instancia (con crypto.randomUUID() o un fallback manual) y no persiste entre recargas de página — no lo uses como identificador estable de usuario o sesión.