[JS] best encodeur décodeur ?

mdj de normandie

Grand Maître
#1
Bonjour,

question simple :
es que quelqu'un connais une solution plus performante pour encoder/décoder des données que btoa et atob ?

je prend aussi les solutions de librairie tiers.

Merci
 

mdj de normandie

Grand Maître
#2
Bon j'ai trouvé un truc :
je compresse les données avec GZIP avant de les encodé en base64 et je peux les décoder et les décompresser ensuite

En PHP c'est simple
PHP:
//Compression
$compress = base64_encode(gzcompress($data, 9));

//Décompression
$uncompress = gzuncompress(base64_decode($compress));
En js il existe la librairie JSXGraph qui contient une librairie JSXCompress mais ironiquement elle ne peut que décompresser des données qui on été préalablement compressé et encodé, mais ne peut apparemment pas compresser des donnée (pour ensuite les renvoyer en ajax par exemple)
JavaScript:
//Equivalent a gzuncompress(base64_decode($compress));
uncompress = JXG.decompress("<?=$compress?>");
Quelqu'un aurait une librairie JS capable de faire l'équivalent d'un gzcompress() et gzuncompress() ?
 

mdj de normandie

Grand Maître
#3
juste si sa intéresse quelqu'un, j'ai fait un test avec une chaine de 1 000 000 de caractères random voila le résultat :

$data = 1 000 000 caractères (alphanumérique, non accentué)
base64_encode($data) = 1 333 336 (soit ~ +33.33%)
base64_encode(gzcompress($data, 9)) = 901 832 (soit ~ -9.82% )

un système d'encodage qui permet de gagner presque 10% de taille je pense que sa vaut le coup (enfin toujours mieux qu'une augmentation de 33.33% ...)
PHP:
$data = "";
for ($index = 0; $index < 10**6; $index++) {
    $data.= base_convert(random_int(0, 35), 10, 36);
}
$datalen = strlen($data);
$b = base64_encode($data);
$blen = strlen($b);
$compress = base64_encode(gzcompress($data, 9));
$clen = strlen($compress);
print_r($data);
print_r($datalen);
print_r($b);
print_r($blen);
print_r($compress);
print_r($clen);
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Staff en ligne
  • magellan
    Modérâleur
  • vince1053
    Modérateur
  • drul
    Obscur pro du hardware
Membres en ligne
  • magellan
  • tutunel
  • vince1053
  • Somacruz59540
  • Vannaldofer
  • drul
Derniers messages publiés
Statistiques globales
Discussions
865 986
Messages
8 063 547
Membres
1 576 512
Dernier membre
Maximin97410
Partager cette page
Haut