Les méthodes d'utilisation de localStorage et sessionStorage dans l'API de stockage local de HTML5 sont les mêmes. La différence est que sessionStorage est effacé après la fermeture de la page, tandis que localStorage sera toujours enregistré. Ici, nous prenons localStorage comme exemple pour présenter brièvement le stockage local de HTML5 et fournir quelques exemples de problèmes courants tels que la traversée. localStorage est l'API de stockage local HTML5, qui utilise des paires clé-valeur pour accéder aux données. Les données consultées ne peuvent être que des chaînes. Différents navigateurs prennent en charge différemment cette API, comme les méthodes d'utilisation, l'espace de stockage maximum, etc.
1. Utilisation de base de l'API localStorage
L'utilisation de l'API localStorage est simple et facile à comprendre. Voici les opérations et exemples courants de l'API : Définir les données : localStorage.setItem(key,value); Exemple :
for(var i=0; i<10; i){
localStorage .setItem(i,i) ;
}
Obtenir les données : localStorage.getItem(key) Obtenir toutes les données : localStorage.valueOf() Exemple :
for(var i=0; i<10; i){
localStorage.getItem( i);
}
Supprimer les données : localStorage.removeItem(key) Exemple :
for(var i=0; i<5; i ){
localStorage.removeItem(i);
}
Effacer all data: localStorage.clear() Obtenir le nombre de données de stockage local :localStorage.length Obtenir la valeur clé de la Nième donnée : localStorage.key(N)
2. Méthode de valeur de clé de parcours
for(var i=localStorage.length - 1; i >=0; i--){
console.log('(i 1) 'th data La valeur clé est : ' localStorage.key(i) ', les données sont : ' localStorage.getItem(localStorage.key(i)));
}
3. Test de limite de taille de stockage et gestion des exceptions
3.1 Test de limite de taille de stockage de données
Différents navigateurs ont essentiellement des limitations sur la taille de stockage local du HTML5. Les résultats d'un test sont les suivants :
IE 9 > 4999995 5 = 5000000
firefox 22.0>5242875 5 = 5242880
chrome 28.0 > 440
safari 5.1 > 2621435 5 = 2621440
opera 12.15 > 5M (S'il dépasse, une boîte de dialogue permettant de demander plus d'espace apparaîtra)
Référence du code de test :
<script><br> function log( msg ) {<br> console.log(msg);<br> alert(msg);<br> }< ;/p>
<p> var limit;<br> var half = '1'; //Ceci sera changé en chinois et exécuté à nouveau<br> var str = half;<br> var sstr;<br> while ( 1 ) { <br> essayez {<br> localStorage.clear();<br> str = half;<br> localStorage.setItem( 'cache', str );<br> half = str;<br> } catch ( ex ) { <br> break;<br> }<br> }<br> var base = str.length;<br> var off = base / 2;<br> var isLeft = 1;<br> while ( off ) { <br> if ( isLeft ) {<br> end = base - (off / 2);<br> } else {<br> end = base (off / 2);<br> }</p>
<p> sstr = str.slice( 0, end );<br> localStorage.clear();<br> essayez {<br> localStorage.setItem( 'cache', sstr );<br> limit = sstr. longueur;<br> isLeft = 0;<br> } catch ( e ) {<br> isLeft = 1;<br> }</p>
<p> base = fin;<br> off = Math.floor( off / 2 );<br> }</p>
<p> log( 'limite : ' limite );<br></script>
3.2 資料儲存異常處理
try}catch(oException){
if(oException.name == 'QuotaExceededError'){
console.log('超出本地儲存限額!');
// //如果歷史信息不重要了,可清空後再設置
localStorage.clear();
localStorage.setItem(key,value);
}
}