Implémentation JavaScript de Gzip
Pour réduire la taille des données JSON pour le stockage dans un cache côté serveur de taille fixe, la compression gzip est une technique utile. Cependant, localiser une implémentation JavaScript de Gzip peut s'avérer difficile.
Une alternative consiste à utiliser la bibliothèque jsolait, qui inclut des fonctions de compression et de décompression LZW. La compression LZW est un algorithme de compression alternatif sans perte. Voici les fonctions JavaScript pour l'encodage et le décodage LZW :
// LZW-compress a string 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(""); } // Decompress an LZW-encoded string 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(""); }
En utilisant ces fonctions, vous pouvez compresser vos données JSON avant de les envoyer au serveur, réduisant ainsi efficacement leur taille tout en conservant leur intégrité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!