21

ModelStorageDelegate

Objective
  • ModelStorageDelegate

Une instance de ModelStorageDelegate permet à une instance de Model de lire et d'écrire ses données en JSON dans l'espace de stockage du navigateur. En tant que délégué, toutes les méthodes d'une instance de ModelStorageDelegate sont toujours appelées à travers une instance de Model.

  1. function ModelStorageDelegate(mode = 'session') {
  2.     if (! (mode == 'session' || mode == 'local'))
  3.         throw new TypeError();
  4.  
  5.     this._storage = mode == 'local' ? localStorage : sessionStorage;
  6. }
  7.  
  8. ModelStorageDelegate.prototype = Object.create(Objective.prototype);
  9.  
  10. Object.defineProperty(ModelStorageDelegate.prototype, 'constructor', { value: ModelStorageDelegate, enumerable: false, writable: true });

Une instance de ModelStorageDelegate hérite de la classe Objective. mode indique si les données sont stockées dans une session séparée ou localement et d'une façon permanente par le navigateur, i.d. 'session' ou 'local'. Le mode 'session' est pris par défaut.

Voir l'article Web Storage API sur le site MDN Web Docs.

  1. ModelStorageDelegate.prototype.isSaved = function(model) {
  2.     return this._storage.getItem(model.name) !== null;
  3. };

isSaved retourne true si l'espace de stockage de this a un item nommé d'après le nom de model, sinon false.

  1. ModelStorageDelegate.prototype.readIn = function(model) {
  2.     let json = this._storage.getItem(model.name);
  3.  
  4.     if (json !== null)
  5.         model.set(JSON.parse(json));
  6. };

readIn récupère le contenu en JSON de l'item de l'espace de stockage de this nommé d'après le nom de model et si défini, le décode et l'assigne à model.

  1. ModelStorageDelegate.prototype.writeOut = function(model) {
  2.     this._storage.setItem(model.name, JSON.stringify(model.get()));
  3.  
  4.     model.changed = false;
  5. };

writeOut assigne la valeur en JSON de model à un item de l'espace de stockage de this nommé d'après le nom de model.

  1. ModelStorageDelegate.prototype.clearSave = function(model) {
  2.     this._storage.removeItem(model.name);
  3. };

clearSave détruit l'item de l'espace de stockage de this nommé d'après le nom de model.

VOIR AUSSI

ModelCookieDelegate, Model, Editor

Commentaires

Votre commentaire :
[p] [b] [i] [u] [s] [quote] [pre] [br] [code] [url] [email] strip aide 2000

Entrez un maximum de 2000 caractères.
Améliorez la présentation de votre texte avec les balises de formatage suivantes :
[p]paragraphe[/p], [b]gras[/b], [i]italique[/i], [u]souligné[/u], [s]barré[/s], [quote]citation[/quote], [pre]tel quel[/pre], [br]à la ligne,
[url]http://www.izend.org[/url], [url=http://www.izend.org]site[/url], [email]izend@izend.org[/email], [email=izend@izend.org]izend[/email],
[code]commande[/code], [code=langage]code source en c, java, php, html, javascript, xml, css, sql, bash, dos, make, etc.[/code].