Преки пътища за състоянието: INC, TOGGLE, NUL, UPDATE, UNWATCH, WAIT, BLOCKED и CACHEPATH
Тези функции работят със състоянието на jComponent по път ('user.visits'), като SET() и GET(), и всяка от тях уведомява компонентите и наблюдателите на пътя.
INC(path, [value])добавяvalue(по подразбиране1) към число; когато стойността е празна, започва от0, а когато е текст, първо се чете като число.TOGGLE(path)променя булева стойност (празна стойност ставаtrue).NUL(path)и неговият псевдонимNULL(path)задават стойността наnull.UPDATE(path)(псевдонимUPD) уведомява всички, които използват пътя, без да променя стойността: използвайте го, след като сте променили обект или масив на място.UNWATCH(path, [fn])премахва наблюдателите на пътя, създадени сWATCH(); сfnсамо този.WAIT(fn or path, callback)изпълняваcallback, щом функцията върне нещо истинно или пътят има стойност. Проверява веднага и после на всеки 500 ms.BLOCKED(key, timeout, [callback])връщаfalseпървия път иtrueпрез следващитеtimeoutms (работи и'5 seconds'): защита е срещу двойно кликване или повторна заявка.callbackсе изпълнява само когато не е блокирано.CACHEPATH(path, expire, [default])държи стойност на състоянието в кеша (CACHE()): задава пътя на кешираната стойност, когато има такава (или наdefault, което може да е функция), и записва всяка промяна под ключаpath_path.- Пътят е път в състоянието на страницата, така че име като
nameилиlocationе свойство наwindow: използвайте собствени имена (person,prefs.mode). setTimeout2(id, fn, ms, [limit], [param])еsetTimeout()с debounce: повторното извикване със същияidрестартира таймера, така чеfnсе изпълнява веднъж,msслед последното извикване. Сlimitтаймерът се рестартира най-много толкова пъти, а следващите извиквания се игнорират, докатоfnне се изпълни, така че поток от извиквания не може да го отлага вечно.clearTimeout2(id)го отменя и връщаtrue, когато е имало такъв.CLONE(value)прави дълбоко копие (датите остават дати),COPY(from, to)копира дълбоко свойствата на един обект в друг и връщаto.NOOPе функция, която не прави нищо, аWARN(...)пише вconsole.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> Опитайте в браузъра си
Редактирайте примера и го изпълнете. Работи в изолирана рамка във вашия браузър; нищо не се изпраща към нашия сървър.
Преглед