Frage

Ich habe ein Objekt, das Daten zur Benutzeroberfläche des Benutzers enthält.Im Moment kommen die Daten in Form von json. Ich führe JSON.parse aus, um das Objekt auszuwerten und etwas HTML entsprechend zu generieren.

Ich denke daran, die JSON-Zeichenfolge im lokalen Sitzungsspeicher (nicht im lokalen Speicher) zu speichern und jedes Mal aufzurufen, wenn die Benutzeroberfläche mit neuem HTML aktualisiert werden muss.Auf diese Weise ist der HTML-Code aller Seiten gleich, wenn der Benutzer eine andere Seite im selben Browser öffnet.

Derzeit wird das Objekt im Speicher gespeichert und die Interaktionen zwischen den Aktionen des Benutzers auf der Benutzeroberfläche und den Änderungen des Objekts werden schnell ausgeführt.Wenn ich es serialisiere und im Sitzungsspeicher speichere, speichern die Browser die Daten im RAM oder auf der Festplatte und verlangsamen die Seite?

War es hilfreich?

Lösung

Entnommen aus der HTML5-Spezifikation:

Die Lebensdauer eines Browserkontexts kann nicht mit der Lebensdauer des eigentlichen Benutzeragentenprozesses selbst zusammenhängen, da der Benutzeragent möglicherweise die Wiederaufnahme von Sitzungen nach einem Neustart unterstützt.

Dies bedeutet, dass Browser diese Informationen möglicherweise auf der Festplatte speichern.

Die Leistung hängt von den browser- und betriebssystemspezifischen Implementierungen ab.Es ist jedoch sehr unwahrscheinlich, dass das Abrufen dieser Informationen einen Engpass darstellt.

Andere Tipps

Ich habe diesen kleinen Test FF 32, Chrome 37, IE 11 durchgeführt. Nur zum Spaß.

console.clear();
var s = new Date();
for(var i=0; i < 100000; i++)
{
  sessionStorage.item = i.toString();
}
var e = new Date();
console.log("session: " + (e - s) + " ms");

s = new Date();
var mem;
for(var i=0; i < 100000; i++)
{
  mem = i.toString();
}
e = new Date();
console.log("mem: " + (e - s) + " ms");

s = new Date();
for(var i=0; i < 100000; i++)
{
  localStorage.item = i.toString();
}
e = new Date();
console.log("local: " + (e - s) + " ms");
console.log('Done');

FF
  • Sitzung: 830 ms
  • mem: 92 ms
  • lokal: 1156 ms

    Chrome
    • Sitzung: 2852 ms
    • mem: 147 ms
    • lokal: 2893 ms

      IE
      • Sitzung: 977 ms
      • mem: 81 ms
      • lokal: 15062 ms

        Nach Abschluss des Tests wurde das Fenster des Browsers für einige Sekunden eingefroren und die Aktivität von CPU + Festplatte erhöht (verursacht durch localStorage).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top