首頁 >web前端 >js教程 >如何在 JavaScript 中有效率地將 ArrayBuffer 轉換為 Base64 字串?

如何在 JavaScript 中有效率地將 ArrayBuffer 轉換為 Base64 字串?

Patricia Arquette
Patricia Arquette原創
2024-12-08 20:31:11763瀏覽

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.

替代方法

雖然上述解決方案是本機解決方案,但非本機實作可能會提供更好的效能。可以在這裡找到這樣的實作:https://gist.github.com/958841。

效能基準

為了公平比較,請參考以下效能基準測試:

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

以上是如何在 JavaScript 中有效率地將 ArrayBuffer 轉換為 Base64 字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn