Statussnelkoppelingen: INC, TOGGLE, NUL, UPDATE, UNWATCH, WAIT, BLOCKED en CACHEPATH
Deze functies werken op de status van jComponent via een pad ('user.visits'), zoals SET() en GET(), en elk van hen meldt de componenten en de watchers van het pad.
INC(path, [value])teltvalue(standaard1) op bij een getal; als de waarde leeg is begint het bij0en als het een tekst is wordt die eerst als getal gelezen.TOGGLE(path)wijzigt een boolean (een lege waarde wordttrue).NUL(path)en zijn aliasNULL(path)zetten de waarde opnull.UPDATE(path)(aliasUPD) meldt iedereen die het pad gebruikt zonder de waarde te wijzigen: gebruik het nadat je een object of array ter plekke hebt gewijzigd.UNWATCH(path, [fn])verwijdert de metWATCH()gemaakte watchers van het pad; metfnalleen die ene.WAIT(fn or path, callback)voertcallbackuit zodra de functie iets waars teruggeeft, of het pad een waarde heeft. Het controleert meteen en daarna elke 500 ms.BLOCKED(key, timeout, [callback])geeft de eerste keerfalseterug en daarnatruegedurendetimeoutms ('5 seconds'werkt ook): het is een bescherming tegen een dubbele klik of een herhaald verzoek. Decallbackdraait alleen als het niet geblokkeerd is.CACHEPATH(path, expire, [default])bewaart een waarde van de status in de cache (CACHE()): het zet het pad op de gecachete waarde als die er is (of opdefault, dat een functie kan zijn) en slaat elke wijziging op onder de sleutelpath_path.- Een pad is een pad in de status van de pagina, dus een naam als
nameoflocationis een eigenschap vanwindow: gebruik eigen namen (person,prefs.mode). setTimeout2(id, fn, ms, [limit], [param])is een gedebouncetesetTimeout(): opnieuw aanroepen met dezelfdeidherstart de timer, zodatfnéén keer draait,msna de laatste aanroep. Metlimitwordt de timer hoogstens zo vaak herstart en worden de volgende aanroepen genegeerd totfnheeft gedraaid, zodat een stroom aanroepen hem niet eindeloos kan uitstellen.clearTimeout2(id)annuleert hem en geefttrueterug als er een was.CLONE(value)maakt een diepe kopie (datums blijven datums),COPY(from, to)kopieert de eigenschappen van het ene object diep naar het andere en geefttoterug.NOOPis een functie die niets doet enWARN(...)schrijft naarconsole.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> Probeer het in je browser
Bewerk het voorbeeld en voer het uit. Het draait in een geïsoleerd frame in je browser; er wordt niets naar onze server gestuurd.
Voorbeeld