Persistence

Registry

Das Registry-Objekt ist eine Speziaisierung von Map für die Verwaltung von Daten. Eine zentrale Instanz der Registry ist im Namepsace unter Alvine.Registry eingehängt. Mit den von Map gewohnten Operationen kann auf die Registry zugegriffen werden.

Alvine.Registry.get(...)

Daten können auch direkt von einer URI initialisiert werden. Dazu muss die Methode Alvine.Registry.initFromURL aufgerufen werden.

Alvine.Registry.initFromURL('mydatayet','https://example.com/');

Das Ergebnis der Methode wird über den Event loaddataset.DONE (mit den Argumenten: key, data) im Erfolgsfall und loaddataset.FAIL (mit den Argumenten: key, jqXHR, textStatus, errorThrown) im Fehlerfall angezeigt.

Zum Speichern der Daten, muss die Funktion Alvine.Registry.postToURL aufgerufen werden. Die Daten des Schlüssels werden per POST gesendet.

Alvine.Registry.postToURL('mydatayet','https://example.com/');

Das Ergebnis der Methode wird über den Event senddataset.DONE (mit den Argumenten: key, data) im Erfolgsfall und senddataset.FAIL (mit den Argumenten: key, jqXHR, textStatus, errorThrown) im Fehlerfall angezeigt.

Dieser Prozess lässt sich über die Registrierung einer Daten-URL automatisieren. Dazu muss die Methode Alvine.Registry.register aufgerufen werden. Die angegebene URL muss ein JSON zurückgeben. Ist der Schlüssel bereits mit einer URL registriert, so wird eine Exception geworfen. Nach erfolgreichem Laden wird der Event registerdataset.DONE mit dem Schlüssel key als Parameter gesendet. Im Fehlerfall wird der Event registerdataset.FAIL mit den Parametern key, jqXHR, textStatus und errorThrown geworfen.

Alvine.Registry.register('mydata','http://example.com/')

Um Datensätze anlegen zu können, kann ein dritter Parameter übergeben werden. Wird ein dritter Parameter übergeben, so werden die enthaltenen Daten als Dataset registriert und keine Daten vom Server geladen. Allerdings werden bei Änderungen die Daten an die URL übertragen.

Alvine.Registry.register('mydata','http://example.com/', {'a':1})

Wurde über Alvine.Registry.register ein Schlüssel mit einer URL registriert, so kann dieser Schlüssel über die Methode Alvine.Registry.initFromURL neu geladen werden. Hier ist dann der zweite Parameter optional.

Alvine.Registry.initFromURL('mydata');

Um eine URL abzumelden, muss Alvine.Registry.unregister aufgerufen werden. Ist der Schlüssel mit keiner UL registriert, so wird eine Exception geworfen.

Alvine.Registry.unregister('mydata')

Nach der Registrierung werden die Daten von der URL geladen un im Dateset eingetragen. Änderungen auf der obersten Ebene des Datesets führen zum absenden der Daten an die Registrierte URL per POST. Um Änderungen auf unterer Ebene abzuschicken, muss ein Schlüssel auf oberster Ebene geändert werden. Mann kann dazu auch einen Fakewert verwenden.

Alvine.Registry.get('mydata').set('done',1);