Zkratky stavu: INC, TOGGLE, NUL, UPDATE, UNWATCH, WAIT, BLOCKED a CACHEPATH
Tyto funkce pracují se stavem jComponent podle cesty ('user.visits'), jako SET() a GET(), a každá z nich upozorní komponenty a sledovače cesty.
INC(path, [value])přičtevalue(výchozí1) k číslu; když je hodnota prázdná, začne od0, a když je to text, nejprve se přečte jako číslo.TOGGLE(path)změní boolean (prázdná hodnota se stanetrue).NUL(path)a jeho aliasNULL(path)nastaví hodnotu nanull.UPDATE(path)(aliasUPD) upozorní všechny, kdo cestu používají, bez změny hodnoty: použijte jej po úpravě objektu nebo pole na místě.UNWATCH(path, [fn])odstraní sledovače cesty vytvořené přesWATCH(); sfnpouze ten jeden.WAIT(fn or path, callback)spustícallback, jakmile funkce vrátí něco pravdivého, nebo cesta má hodnotu. Zkontroluje hned a pak každých 500 ms.BLOCKED(key, timeout, [callback])vrátífalsepoprvé atruepo dalšíchtimeoutms (funguje i'5 seconds'): je to ochrana proti dvojitému kliknutí nebo opakovanému požadavku.callbackse spustí pouze tehdy, když není zablokováno.CACHEPATH(path, expire, [default])uchovává hodnotu stavu v cache (CACHE()): nastaví cestu na uloženou hodnotu, pokud existuje (nebo nadefault, který může být funkce), a každou změnu ukládá pod klíčpath_path.- Cesta je cesta ve stavu stránky, takže název jako
namenebolocationje vlastnostwindow: používejte vlastní názvy (person,prefs.mode). setTimeout2(id, fn, ms, [limit], [param])jesetTimeout()s debounce: opětovné zavolání se stejnýmidrestartuje časovač, takžefnse spustí jednou,mspo posledním volání. Slimitse časovač restartuje nejvýše tolikrát a další volání se ignorují, dokudfnneběžel, takže proud volání jej nemůže odkládat donekonečna.clearTimeout2(id)jej zruší a vrátítrue, když nějaký byl.CLONE(value)vytvoří hlubokou kopii (data zůstanou daty),COPY(from, to)hluboce zkopíruje vlastnosti jednoho objektu do druhého a vrátíto.NOOPje funkce, která nedělá nic, aWARN(...)píše doconsole.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> Vyzkoušejte to ve svém prohlížeči
Upravte příklad a spusťte ho. Běží v izolovaném rámu ve vašem prohlížeči; na náš server se nic neposílá.
Náhled