ForgejComponent
el

jComponent

Συντομεύσεις κατάστασης: INC, TOGGLE, NUL, UPDATE, UNWATCH, WAIT, BLOCKED και CACHEPATH

jComponent 20 · jcomponent@20 jcomponentfrontendstateutilities Εκτελέστηκε με jComponent 20

Αυτές οι συναρτήσεις δουλεύουν με την κατάσταση του 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 για τα επόμενα timeout ms (δουλεύει και το '5 seconds'): είναι προστασία από διπλό κλικ ή επαναλαμβανόμενο αίτημα. Το callback εκτελείται μόνο όταν δεν είναι μπλοκαρισμένο.
  • Το CACHEPATH(path, expire, [default]) κρατά μια τιμή της κατάστασης στην cache (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.
public/index.html
<!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>
Δοκιμάστε το στον browser σας

Επεξεργαστείτε το παράδειγμα και εκτελέστε το. Εκτελείται σε απομονωμένο πλαίσιο στον browser σας· τίποτα δεν στέλνεται στον διακομιστή μας.

Προεπισκόπηση