在原生 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中文网其他相关文章!