Vous pouvez calculer ces chiffres si vous voulez. Fondamentalement, la limite par défaut pour localStorage et webStorage est de 5 Mo où le nom et les valeurs sont enregistrés comme UTF16 donc c'est vraiment la moitié de ce qui est de 2,5 Mo en termes de caractères stockés. Dans webStorage, vous pouvez augmenter cela en ajoutant "unlimited_storage" dans le manifeste.
Même chose s'applique dans WebStorage, mais vous devez parcourir toutes les tables et déterminer le nombre de caractères par ligne.
En localStorage Vous pouvez tester que en faisant un script de la population:
var row = 0;
localStorage.clear();
var populator = function() {
localStorage[row] = '';
var x = '';
for (var i = 0; i < (1024 * 100); i++) {
x += 'A';
}
localStorage[row] = x;
row++;
console.log('Populating row: ' + row);
populator();
}
populator();
ci-dessus doivent tomber en panne dans la ligne 25 pour ne pas assez d'espace autour de ce qui en fait 2.5MB. Vous pouvez faire l'inverse et compter combien de caractères par rangée et cela détermine combien d'espace vous avez.
Une autre façon de faire ceci est toujours d'ajouter une "charge utile" et de vérifier l'exception si elle existe, si c'est le cas, alors vous connaissez votre manque de place.
try {
localStorage['foo'] = 'SOME_DATA';
} catch (e) {
console.log('LIMIT REACHED! Do something else');
}
Internet Explorer a fait quelque chose appelé "remainingSpace", mais cela ne fonctionne pas dans Chrome/Safari: http://msdn.microsoft.com/en-us/library/cc197016(v=VS.85).aspx
@nice réponse. Merci pour le partage. – Dave