Frage HTML5 localStorage-Größenbeschränkung für Subdomänen


Die localStorage-Datenbanken von HTML5 sind normalerweise größenmäßig begrenzt - Standardgrößen sind 5 oder 10 MB pro Domäne. Können diese Grenzen durch Subdomains umgangen werden (z. B. example.com, hack1.example.com und hack2.example.com haben alle ihre eigenen 5 MB-Datenbanken)? Und gibt es etwas im Standard, das angibt, ob übergeordnete Domänen auf die Datenbanken ihrer Kinder zugreifen können? Ich kann nichts finden, und ich kann Argumente sehen, wie ich das machen könnte, aber es scheint, als müsste es ein Standardmodell geben.


75
2018-04-30 19:55


Ursprung


Antworten:


Von http://dev.w3.org/html5/webstorage/#disk-space

Eine meist willkürliche Grenze von fünf Megabyte pro Ursprung wird empfohlen. Implementierungsfeedback ist willkommen und wird verwendet, um diesen Vorschlag in der Zukunft zu aktualisieren.

Es erwähnt auch, dass:

Benutzeragenten sollten sich vor Sites schützen, die Daten unter den Ursprüngen speichern   andere verbundene Sites, z.B. Speichern bis zum Limit in   a1.example.com, a2.example.com, a3.example.com usw. unter Umgehung der   Hauptbeispiel.com Speichergrenze.


53
2018-05-03 08:34



Hier ist ein ziemlich detailliertes Testergebnis mit vielen abgedeckten Desktop- und mobilen Browsern: http://dev-test.nemikor.com/web-storage/support-test/

Das bestätigt diesen Fehlerbericht: http://code.google.com/p/chromium/issues/detail?id=58985#c15

Sie können sich nur auf 2,5 MB und nicht auf 5 MB verlassen, basierend auf der Zeichenkettenlänge, die Sie speichern können.


14
2018-01-17 13:09



Ich habe diese Frage vermisst, als ich gefragt habe "Ist 5MB das De-facto-Limit für W3C Web Storage?", aber ich habe im Grunde die gleiche Antwort erhalten. Wenn Sie mehr Informationen möchten, habe ich in meiner Frage auf einige Browser-spezifische Grenzen verlinkt.


9
2017-08-27 13:39



Eine bessere Lösung ist die Verwendung der [HTML5 IndexedDB für die Offline-Speicherung].1

Es sieht so aus, als ob es das alte Web SQL ersetzen würde (für das es scheinbar b / c heißt) offline Speicher) ist: Indizierte Datenbank, die Offline-Speicherung ermöglicht und weiterhin unterstützt wird:

IndexedDB ist neu in HTML5. Web-Datenbanken werden gehostet und beibehalten   im Browser eines Benutzers. Dadurch können Entwickler Anwendungen erstellen   Mit reichen Abfragemöglichkeiten ist es eine neue Art von Web vorstellbar   Anwendungen entstehen, die die Fähigkeit haben, online zu arbeiten und    offline.

Weitere Informationen und a Test-App beim: http://ido-green.appspot.com/WebSQL-IndexedDB-example/jqm_indexedDB.html


5
2018-05-23 13:52



Um 50 MB Speicherplatz zu erhalten, verwenden Sie den folgenden Code

// 1. paste this line in your code
!function(){function e(t,o){return n?void(n.transaction("s").objectStore("s").get(t).onsuccess=function(e){var t=e.target.result&&e.target.result.v||null;o(t)}):void setTimeout(function(){e(t,o)},100)}var t=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;if(!t)return void console.error("indexDB not supported");var n,o={k:"",v:""},r=t.open("d2",1);r.onsuccess=function(e){n=this.result},r.onerror=function(e){console.error("indexedDB request error"),console.log(e)},r.onupgradeneeded=function(e){n=null;var t=e.target.result.createObjectStore("s",{keyPath:"k"});t.transaction.oncomplete=function(e){n=e.target.db}},window.ldb={get:e,set:function(e,t){o.k=e,o.v=t,n.transaction("s","readwrite").objectStore("s").put(o)}}}();

// 2. Setting values
ldb.set('nameGoesHere', 'value goes here');

// 3. Getting values - callback is required because the data is being retrieved asynchronously:
ldb.get('nameGoesHere', function (value) {
  console.log('And the value is', value);
});

Quelle https://github.com/DVLP/localStorageDB


2
2018-05-27 15:55