Store Data Handler
Der Store Data Handler stellt ein zentrales Datenmanagement innerhalb der Engine bereit und unterscheidet bewusst zwischen zwei Speichertypen: flüchtigem Speicher und persistenter Speicherung über IndexedDB. Der flüchtige Speicher ist ausschließlich im laufenden Kontext der Anwendung verfügbar. Er ist nicht persistent, nicht exportierbar und nicht direkt auslesbar über externe Schnittstellen. Dadurch eignet er sich für temporäre Zustände, UI-States oder sensible Runtime-Daten, die nicht dauerhaft gespeichert werden sollen.
Für persistente Daten nutzt Kryzo einen separaten Store. Dieser wird über den STORE_DB Handler verwaltet und ermöglicht strukturierte, asynchrone Speicherung direkt im Browser. Die Daten bleiben zwischen Sitzungen erhalten und können gezielt organisiert und isoliert werden.
Store Initialization
/*
STANDALONE VERWENDUNG
*/
import { StoreHandler } from './assets/build/modules/system/store.js';
const STORE = new StoreHandler({ }); // Für flüchtigen Speicher
const STORE_DB = new StoreHandler({ }); // Für STORE DB
/*
Zu beachten: in script type="module" !!!
STORE & STORE_DB sindt nun registrierte StoreHandler
Die StoreHandler Funktionen können nun genutzt werden
*/
/*
ODER VIA SYSTEM VERWENDEN
*/
document.addEventListener('kryzo:ready', ({ detail: { STORE, STORE_DB } }) => {
/*
Kann in type="text/javascript" verwendet werden !!!
STORE & STORE_DB sindt nun registrierte StoreHandler
Die StoreHandler Funktionen können nun genutzt werden
*/
});
SET / UPDATE Funktion
/*
Flüchtiger Datensatz
*/
/*
type: default|fix
Alle anderen Werte frei erstellbar
*/
await STORE.set({ key:"user", value: {
type: "default",
name: "Ingo",
street: "Mustergasse",
} });
/* UPDATE flüchtiger Datensatz */
/* Nur ausführbar, wenn type = default */
await STORE.update({ key:"user", value: {
type: "default",
name: "Max",
street: "Musterstraße",
} });
/*
STORE DB Datensatz
*/
// Zuerst DB selektieren!
await STORE_DB.set({ key: 'user', value: { name: 'Ingo' } });
GET Funktion
/*
Flüchtigen Datensatz auslesen
*/
const USER = await STORE.get({ key:"user" });
/*
STORE DB Datensatz auslesen
*/
// Zuerst DB selektieren!
const user = await STORE_DB.get({ key: 'user' });
CLEAR / DELETE Funktion
/*
Flüchtigen Datensatz entfernen
*/
await STORE.delete({ key:"user" });
/*
STORE DB Datensatz löschen
*/
// Zuerst DB selektieren!
await STORE_DB.delete({ key:"user" });
/* Alle flüchtigen Datensätze löschen */
await STORE.clear();
/* Alle STORE DB Datensätze löschen */
await STORE_DB.clear('meineProjektDB');
/* Erstellte STORE DB komplett löschen */
await STORE_DB.deleteDB('meineProjektDB');
Helper Funktionen
/* Anzahl flüchtiger Datensätze */
const counter = await STORE.rowCount();
/* STORE DB auswählen / erstellen */
await STORE_DB.selectDB('meineProjektDB','myTableName');
// ab hier geht set/get/update mit STORE DB "meineProjektDB"
/* Anzahl STORE DB Datensätze */
const counter = await STORE_DB.rowCount();
/* Disconnect STORE DB */
STORE_DB.closeDB();