Local Storage
Local Storage
Local Storage
APIs du Web
● Les navigateurs offrent un ensemble dʼoutils pour le développement web accessibles à partir de
leur API (Application Programming Interface) exposant leurs fonctionnalités au JavaScript.
○ Lʼimplémentation exacte dépend de chaque navigateur. Certaines API ne sont pas
disponibles partout ou ont des comportements différents selon la plateforme.
○ Certaines APIs ont de contraintes spécifiques (HTTPS seulement, expérimentaux, etc)
● Le DOM fait partie des API du Web ainsi que plusieurs autres déjà utilisés (ex : Console)
● Une liste complète est disponible sur MDN
○ Nous verrons 1 API supplémentaire plus en détails : Web Storage
Web Storage
● Permet de sauvegarder de lʼinformation dans le navigateur de manière temporaire ou permanente.
○ Sauvegarde avec des paires clé-valeur en format string
■ Il faut convertir les objets JS en string avec : JSON.stringify(monObjet)
■ Il faut reconvertir les string en objets avec : JSON.parse(maString)
○ Alternative simple à IndexedDB (autre API Web pour des données plus complexes)
SessionStorage
● Stockage de session (sessionStorage) : utilisé pour de lʼinformation temporaire.
○ Créé lors de lʼouverture de lʼonglet et existe seulement pour cet onglet
■ Un nouvel onglet avec le même URL a sa propre session
■ Un onglet dupliqué possède une copie du sessionStorage
○ Persiste à travers le rechargement et la restauration de la page
○ Est effacé lorsquʼon ferme la session (lʼonglet)
LocalStorage
● Stockage local (localStorage) : utilisé pour de lʼinformation de plus longue durée.
○ Créé lors de son premier accès et persiste tant quʼon ne lʼefface pas explicitement
○ Un nouvel onglet avec le même URL partage le Storage
○ Ségrégué par domaine :
■ exemple.com/a et exemple.com/b ont le même LocalStorage
■ a.exemple.com et b.exemple.com nʼont pas le même LocalStorage
○ Persiste à travers le rechargement et la fermeture du navigateur au complet
● Effacé lorsque fait explicitement par lʼutilisateur
○ Appel à localStorage.clear() ou suppression manuelle dans lʼonglet Application
Génie informatique et génie logiciel – LOG2440 A2024 5
Semaine 5 – Web APIs
Exemple
Exemple
<fieldset> function saveData() {
<legend> Stockage local </legend> localStorage .setItem("localData" ,
<label for="localData" > Ceci sera persistant: </label> document.getElementById ("localData" ).value);
<input id="localData" type="text" /> sessionStorage .setItem("sessionData" ,
</fieldset> document.getElementById ("sessionData" ).value);
<fieldset> }
<legend> Stockage de session </legend>
<label for="sessionData" > Ceci sera conservé durant function loadData() {
la session: </label> document .getElementById ("localData" ).value =
<input id="sessionData" type="text" /> localStorage .getItem("localData" );
</fieldset> document .getElementById ("sessionData" ).value =
<div> sessionStorage .getItem("sessionData" );
<button onclick="saveData()">Sauvegarder </button> }
<button onclick="loadData()">Récupérer </button> function resetData () {
<button onclick="resetData ()">Tout vider </button> localStorage .clear();
</div> sessionStorage .clear();
}
Exemple de sauvegarde
Suppression complète
● Note : gardez les données sensibles sur un serveur distant séparé du site
○ Lʼinformation est visible à tout code exécuté sur la page
○ Web Storage impose une limite au niveau de la taille et le format des données
Génie informatique et génie logiciel – LOG2440 A2024 11
Semaine 5 – Web APIs
Exemple