首页 >web前端 >js教程 >如何在 JavaScript 中高效地将 ArrayBuffer 转换为 Base64 字符串?

如何在 JavaScript 中高效地将 ArrayBuffer 转换为 Base64 字符串?

Linda Hamilton
Linda Hamilton原创
2024-12-02 10:03:12188浏览

How to Efficiently Convert ArrayBuffers to Base64 Strings in JavaScript?

在原生 JavaScript 中将 ArrayBuffer 转换为 Base64 字符串

当前的任务是将 ArrayBuffer 高效地转换为 Base64 编码的字符串,即多部分 POST 请求的要求。

原生实现

下面的代码提供了一个本机解决方案:

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

此实现在应用 Base64 编码之前将 ArrayBuffer 转换为二进制字符串。

非原生替代

虽然原生实现是可靠的,但非原生现有的方法可以提供改进的性能。可以在以下位置找到这样的实现:

https://gist.github.com/958841

性能基准表明非本机方法可以更快。请参阅:

http://jsperf.com/encoding-xhr-image-data/6

更新的基准:

https://jsben.ch/wnaZC

以上是如何在 JavaScript 中高效地将 ArrayBuffer 转换为 Base64 字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn