Scorciatoie dello stato: INC, TOGGLE, NUL, UPDATE, UNWATCH, WAIT, BLOCKED e CACHEPATH
Queste funzioni lavorano sullo stato di jComponent tramite percorso ('user.visits'), come SET() e GET(), e ognuna notifica i componenti e gli osservatori del percorso.
INC(path, [value])sommavalue(predefinito1) a un numero; quando il valore è vuoto parte da0e quando è un testo viene prima letto come numero.TOGGLE(path)cambia un booleano (un valore vuoto diventatrue).NUL(path)e il suo aliasNULL(path)impostano il valore anull.UPDATE(path)(aliasUPD) notifica tutti quelli che usano il percorso senza cambiare il valore: usalo dopo aver modificato un oggetto o un array sul posto.UNWATCH(path, [fn])rimuove gli osservatori del percorso creati conWATCH(); confn, solo quello.WAIT(fn or path, callback)eseguecallbackappena la funzione restituisce qualcosa di vero, o il percorso ha un valore. Controlla subito e poi ogni 500 ms.BLOCKED(key, timeout, [callback])restituiscefalsela prima volta etrueper i successivitimeoutms (funziona anche'5 seconds'): è una protezione contro un doppio clic o una richiesta ripetuta. Ilcallbackviene eseguito solo quando non è bloccato.CACHEPATH(path, expire, [default])mantiene un valore dello stato nella cache (CACHE()): imposta il percorso al valore in cache quando c'è (o adefault, che può essere una funzione) e salva ogni cambiamento sotto la chiavepath_path.- Un percorso è un percorso nello stato della pagina, quindi un nome come
nameolocationè una proprietà diwindow: usa nomi tuoi (person,prefs.mode). setTimeout2(id, fn, ms, [limit], [param])è unsetTimeout()con debounce: richiamarlo con lo stessoidriavvia il timer, quindifnviene eseguito una volta,msdopo l'ultima chiamata. Conlimitil timer viene riavviato al massimo quel numero di volte e le chiamate successive sono ignorate finchéfnnon è stato eseguito, così un flusso di chiamate non può rimandarlo per sempre.clearTimeout2(id)lo annulla e restituiscetruequando ce n'era uno.CLONE(value)fa una copia profonda (le date restano date),COPY(from, to)copia in profondità le proprietà di un oggetto in un altro e restituisceto.NOOPè una funzione che non fa nulla eWARN(...)scrive suconsole.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> Provalo nel tuo browser
Modifica l'esempio ed eseguilo. Gira in un frame isolato del tuo browser; nulla viene inviato al nostro server.
Anteprima