Atajos del estado: INC, TOGGLE, NUL, UPDATE, UNWATCH, WAIT, BLOCKED y CACHEPATH
Estas funciones trabajan con el estado de jComponent por ruta ('user.visits'), como SET() y GET(), y todas ellas notifican a los componentes y a los observadores de la ruta.
INC(path, [value])sumavalue(por defecto1) a un número; cuando el valor está vacío empieza en0y cuando es un texto se lee primero como número.TOGGLE(path)cambia un booleano (un valor vacío pasa atrue).NUL(path)y su aliasNULL(path)ponen el valor ennull.UPDATE(path)(aliasUPD) notifica a todos los que usan la ruta sin cambiar el valor: úsalo después de modificar un objeto o un array en el mismo sitio.UNWATCH(path, [fn])quita los observadores de la ruta creados conWATCH(); confn, solo ese.WAIT(fn or path, callback)ejecutacallbacken cuanto la función devuelve algo verdadero, o la ruta tiene un valor. Comprueba de inmediato y después cada 500 ms.BLOCKED(key, timeout, [callback])devuelvefalsela primera vez ytruedurante los siguientestimeoutms (también vale'5 seconds'): es una protección contra un doble clic o una petición repetida. Elcallbackse ejecuta solo cuando no está bloqueado.CACHEPATH(path, expire, [default])guarda un valor del estado en la caché (CACHE()): pone la ruta al valor guardado cuando lo hay (o adefault, que puede ser una función) y guarda cada cambio bajo la clavepath_path.- Una ruta es una ruta en el estado de la página, así que un nombre como
nameolocationes una propiedad dewindow: usa nombres propios (person,prefs.mode). setTimeout2(id, fn, ms, [limit], [param])es unsetTimeout()con debounce: llamarlo de nuevo con el mismoidreinicia el temporizador, así quefnse ejecuta una vez,msdespués de la última llamada. Conlimitel temporizador se reinicia como mucho ese número de veces y las llamadas siguientes se ignoran hasta quefnse haya ejecutado, así una ráfaga de llamadas no puede aplazarlo para siempre.clearTimeout2(id)lo cancela y devuelvetruecuando había uno.CLONE(value)hace una copia profunda (las fechas siguen siendo fechas),COPY(from, to)copia en profundidad las propiedades de un objeto en otro y devuelveto.NOOPes una función que no hace nada yWARN(...)escribe enconsole.warn.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>jComponent</title>
<link rel="stylesheet" href="//cdn.componentator.com/spa.min@20.css" />
<script src="//cdn.componentator.com/spa.min@20.js"></script>
</head>
<body>
<p class="out"></p>
<script>
window.sample = { watched: 0 };
</script>
</body>
</html> Pruébalo en tu navegador
Edita el ejemplo y ejecútalo. Se ejecuta en un marco aislado de tu navegador; no se envía nada a nuestro servidor.
Vista previa