ArrayBuffer 是 Fetch API 中操作原始字节最底层的选择,可通过 response.arrayBuffer() 获取,配合 Uint8Array 等视图读写,支持流式处理大文件及直接作为请求体发送二进制数据。Fetch API 默认将响应体转为高级抽象(如 JSON、文本或 Blob),但若需直接操作原始字节,ArrayBuffer 是最轻量、最底层的选择。它让你绕过自动编码解析,精准控制二进制数据的读写与转换。用 arrayBuffer() 获取原始字节Fetch 响应对象提供 arrayBuffer() 方法,返回一个 Promise,解析为 ArrayBuffer 实例------即一段连续的、未解释的内存块。示例:fetch('/image.png') .then(response => response.arrayBuffer()) .then(buffer => { console.log(buffer.byteLength); // 如 12480 console.log(buffer.constructor === ArrayBuffer); // true });用 Uint8Array 或其他视图读写字节ArrayBuffer 本身不可直接读取;必须通过类型化数组(如 Uint8Array、Int32Array、Float64Array)创建"视图"来访问内容。常见操作:按字节遍历:用 Uint8Array 查看每个 byte(0--255) 读取结构化数据:如从 buffer 开头读取 4 字节整数 → new Int32Array(buffer, 0, 1)0 修改内容:直接赋值给视图索引,会同步反映在底层 buffer 中示例(检查 PNG 签名):response.arrayBuffer().then(buffer => { const view = new Uint8Array(buffer); if (view0 === 0x89 && view1 === 0x50 && view2 === 0x4e && view3 === 0x47) { console.log('Valid PNG'); }});流式处理大文件:配合 ReadableStream 和 getReader()对超大响应(如百 MB 视频或模型文件),一次性加载到内存可能引发 OOM。Fetch 的 response.body 是 ReadableStream,可分块读取并逐段转为 ArrayBuffer。 Murf AI AI文本转语音生成工具
相关推荐
这个DBA有点耶5 小时前
NULL不是空——数据库里最反直觉的设计,90%新人踩过的坑用户8356290780515 小时前
Python 实现 PDF 文件加密与解密方法用户8356290780515 小时前
使用 Python 冻结与拆分 Excel 窗格教程这个DBA有点耶7 小时前
AI写的SQL跑崩了生产库,这锅谁背?镜舟科技7 小时前
Databricks 再提 LTAP,AI 时代的数据底座为何重回大一统叙事?Databend8 小时前
从湖仓升级为 Agent 时代的数据控制面,Snowflake 和 Databricks 有哪些布局ClouGence11 小时前
SQL Server CDC 能放到 Always On 备库读吗?一文讲透原理与实践你好潘先生13 小时前
别再记命令了,用 yeero do 说句人话就能跑脚本,而且不烧 tokenAgent_大师13 小时前
WebSocket 行情重连成功,K线缺口不会自动消失荣码13 小时前
LLM结构化输出:让AI返回JSON而不是废话,我踩了4个坑