Skróty stanu: INC, TOGGLE, NUL, UPDATE, UNWATCH, WAIT, BLOCKED i CACHEPATH
Te funkcje działają na stanie jComponent według ścieżki ('user.visits'), jak SET() i GET(), a każda z nich powiadamia komponenty i obserwatorów ścieżki.
INC(path, [value])dodajevalue(domyślnie1) do liczby; gdy wartość jest pusta, zaczyna od0, a gdy jest tekstem, najpierw jest odczytywana jako liczba.TOGGLE(path)zmienia wartość logiczną (pusta wartość staje siętrue).NUL(path)i jego aliasNULL(path)ustawiają wartość nanull.UPDATE(path)(aliasUPD) powiadamia wszystkich, którzy używają ścieżki, bez zmiany wartości: użyj go po zmodyfikowaniu obiektu lub tablicy w miejscu.UNWATCH(path, [fn])usuwa obserwatorów ścieżki utworzonych przezWATCH(); zfntylko tego jednego.WAIT(fn or path, callback)uruchamiacallback, gdy tylko funkcja zwróci coś prawdziwego lub ścieżka ma wartość. Sprawdza od razu, a potem co 500 ms.BLOCKED(key, timeout, [callback])zwracafalseza pierwszym razem itrueprzez następnetimeoutms (działa też'5 seconds'): to ochrona przed podwójnym kliknięciem lub powtórzonym żądaniem.callbackuruchamia się tylko wtedy, gdy nie jest zablokowane.CACHEPATH(path, expire, [default])trzyma wartość stanu w cache (CACHE()): ustawia ścieżkę na wartość z cache, jeśli jest (lub nadefault, które może być funkcją), i zapisuje każdą zmianę pod kluczempath_path.- Ścieżka to ścieżka w stanie strony, więc nazwa taka jak
nameczylocationjest właściwościąwindow: używaj własnych nazw (person,prefs.mode). setTimeout2(id, fn, ms, [limit], [param])tosetTimeout()z debounce: ponowne wywołanie z tym samymidrestartuje licznik, więcfnuruchamia się raz,mspo ostatnim wywołaniu. Zlimitlicznik jest restartowany co najwyżej tyle razy, a kolejne wywołania są ignorowane, dopókifnsię nie uruchomi, więc strumień wywołań nie może go odkładać w nieskończoność.clearTimeout2(id)go anuluje i zwracatrue, gdy jakiś był.CLONE(value)robi głęboką kopię (daty pozostają datami),COPY(from, to)głęboko kopiuje właściwości jednego obiektu do drugiego i zwracato.NOOPto funkcja, która nic nie robi, aWARN(...)pisze 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> Wypróbuj w przeglądarce
Edytuj przykład i uruchom go. Działa w izolowanej ramce w Twojej przeglądarce; nic nie jest wysyłane na nasz serwer.
Podgląd