2 Stimmen

Wie/Wo werden die Daten auf der HTML-Seite des Kunden gespeichert?

Ich speichere ein Skelett Schnappschuss der Web-Seite, die der Server in der HTML selbst generiert, so dass, wenn ich Ajax-Anforderungen zurück an den Server senden, der Server herausfinden kann, was die Seite der Client aussieht und senden Sie die entsprechenden diffs zurück.

Dieses Skelett ist im Grunde ein Baum, in dem jeder Knoten eine Komponente darstellt (Menüleiste, Seitenleiste, Inhalt, Kommentar, was auch immer) und seine Kinder sind seine Unterkomponenten.

Derzeit speichere ich sie als Base64ed GZiped JSONed Daten. Als reines JSON, dauert es etwa 4000 Zeichen, aber verschlüsselt es ~500 nimmt. (aus Interesse, Python's Pickle nimmt ~3000 Zeichen, aber nur komprimiert bis ~2000)

Meine Frage ist also, gibt es noch etwas, das ich tun kann, um die Daten zu reduzieren? Gibt es ein websicheres Datenformat, das kompakter ist als Base64? Gibt es eine Komprimierung, die kompakter ist als GZip? Die Erhöhung des "Levels" der gzip-Funktion von 6 auf 9 führte zu einer sehr geringen (~20 Zeichen) Einsparung.

Und die andere Frage ist: Wohin sollen diese Daten gehen? Momentan befinden sie sich einfach irgendwo im Wert eines versteckten Eingabefeldes. Spielt es überhaupt eine Rolle, ob sie in den Attributen eines Eingabefeldes, in den Attributen eines anderen Tags oder als Inhalt eines Divs mit display:hidden gespeichert sind? Oder ist es nicht wert, sich darum zu kümmern?

1voto

Baz1nga Punkte 15240

Ich sehe keinen Grund, sie in einem verborgenen Feld zu speichern. Ich würde nicht empfehlen, sie in einem versteckten Feld zu speichern. Sie können wahrscheinlich Jquerys Daten-Methode verwenden, um die Json zu speichern oder speichern Sie es einfach in einer Javascript-Variable, die korrekt skaliert wird.

Ich bin mir nicht sicher, welchen Ansatz Sie verfolgen, um das DIFF zu erhalten. Senden Sie die gespeicherten Daten vom Client an den Server zurück oder senden Sie Daten vom Server an den Client und dann DIFF es auf dem Client-Ende, die eine bessere Option sein könnte?

Was die Komprimierung betrifft, so denke ich nicht, dass Sie sich zu sehr darauf konzentrieren sollten, denn es gibt auch einen negativen Aspekt: Sie müssen Zeit damit verbringen, sie zu dekomprimieren. Das, was man derzeit überprüfen sollte, wäre also

compression + decompression < time taken for transfer

Wenn das der Fall ist, sollten Sie die Daten wahrscheinlich komprimieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X