ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で ArrayBuffer を Base64 文字列に効率的に変換するにはどうすればよいですか?

JavaScript で ArrayBuffer を Base64 文字列に効率的に変換するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-08 20:31:11755ブラウズ

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

ArrayBuffer を Base64 に変換するためのネイティブ実装

ArrayBuffer を Base64 でエンコードされた文字列に変換することは、マルチパートなどのさまざまなユースケースにとって重要です。 POST リクエスト。これを効率的に達成するために、開発者はネイティブ ソリューションを求めることがよくあります。

ソリューション

ArrayBuffer を 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);
}

この関数は ArrayBuffer からバイナリ文字列を作成し、ネイティブ btoa 関数を使用してbase64 string.

代替アプローチ

上記のソリューションはネイティブですが、非ネイティブ実装の方がパフォーマンスが向上する可能性があります。このような実装の 1 つは、https://gist.github.com/958841 にあります。

パフォーマンス ベンチマーク

公正な比較については、次のパフォーマンスを参照してください。ベンチマーク:

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

以上がJavaScript で ArrayBuffer を Base64 文字列に効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。