Maison >interface Web >js tutoriel >Comment puis-je convertir efficacement un ArrayBuffer en chaîne Base64 en JavaScript ?

Comment puis-je convertir efficacement un ArrayBuffer en chaîne Base64 en JavaScript ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-08 20:31:11822parcourir

How Can I Efficiently Convert an ArrayBuffer to a Base64 String in JavaScript?

Implémentation native pour la conversion d'ArrayBuffer en Base64

La conversion d'un ArrayBuffer en chaîne codée en base64 est cruciale pour divers cas d'utilisation, tels que les parties multiples Requêtes POST. Pour y parvenir efficacement, les développeurs recherchent souvent des solutions natives.

SOLUTION

Voici une fonction native efficace pour convertir un ArrayBuffer en chaîne base64 :

function _arrayBufferToBase64(buffer) {
    var binary = '';
    var bytes = new Uint8Array(buffer);
    var len = bytes.byteLength;
    for (var i = 0; i < len; i++) {
        binary += String.fromCharCode(bytes[i]);
    }
    return window.btoa(binary);
}

Cette fonction crée une chaîne binaire à partir de l'ArrayBuffer et utilise la fonction native btoa pour générer le base64 string.

APPROCHES ALTERNATIVES

Bien que la solution ci-dessus soit native, les implémentations non natives peuvent offrir de meilleures performances. Une telle implémentation peut être trouvée ici : https://gist.github.com/958841.

REFÉRENCES DE PERFORMANCE

Pour une comparaison équitable, reportez-vous aux performances suivantes repères :

  • http://jsperf.com/encoding-xhr-image-data/6
  • https://jsben.ch/wnaZC

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn