Heim > Web-Frontend > js-Tutorial > Kann JavaScript JSON-Daten clientseitig für Server mit Caches fester Größe komprimieren?

Kann JavaScript JSON-Daten clientseitig für Server mit Caches fester Größe komprimieren?

Patricia Arquette
Freigeben: 2024-12-06 13:16:11
Original
717 Leute haben es durchsucht

Can JavaScript Compress JSON Data Client-Side for Servers with Fixed-Size Caches?

JavaScript-Implementierung von Gzip

Frage:

Gibt es eine Möglichkeit, JSON-Daten zu komprimieren? auf der Clientseite, bevor es an einen Server mit fester Größe gesendet wird Cache?

Antwort:

Bearbeiten: Für bessere Ergebnisse verwenden Sie die verbesserte LZW-Lösung unter http://pieroxy.net/blog /pages/lz-string/index.html.

Original Lösung:

Während JavaScript keine Implementierung von Gzip bereitstellt, bietet die jsolait-Bibliothek Funktionen für die LZW-Komprimierung und -Dekomprimierung. Hier ist der Code:

LZW-Komprimierungsfunktion:

function lzw_encode(s) {
    var dict = {};
    var data = (s + "").split("");
    var out = [];
    var currChar;
    var phrase = data[0];
    var code = 256;
    for (var i = 1; i < data.length; i++) {
        currChar = data[i];
        if (dict[phrase + currChar] != null) {
            phrase += currChar;
        } else {
            out.push(phrase.length > 1 ? dict[phrase] : phrase.charCodeAt(0));
            dict[phrase + currChar] = code;
            code++;
            phrase = currChar;
        }
    }
    out.push(phrase.length > 1 ? dict[phrase] : phrase.charCodeAt(0));
    for (var i = 0; i < out.length; i++) {
        out[i] = String.fromCharCode(out[i]);
    }
    return out.join("");
}
Nach dem Login kopieren

LZW-Dekomprimierungsfunktion:

function lzw_decode(s) {
    var dict = {};
    var data = (s + "").split("");
    var currChar = data[0];
    var oldPhrase = currChar;
    var out = [currChar];
    var code = 256;
    var phrase;
    for (var i = 1; i < data.length; i++) {
        var currCode = data[i].charCodeAt(0);
        if (currCode < 256) {
            phrase = data[i];
        } else {
            phrase = dict[currCode] ? dict[currCode] : (oldPhrase + currChar);
        }
        out.push(phrase);
        currChar = phrase.charAt(0);
        dict[code] = oldPhrase + currChar;
        code++;
        oldPhrase = phrase;
    }
    return out.join("");
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonKann JavaScript JSON-Daten clientseitig für Server mit Caches fester Größe komprimieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage