js中接收和操作ArrayBuffer
关于前段ArrayBuffer的数据处理也是最近遇到的,主要是用于接收并显示后端生成的图片流。
数据的获取:
一开始我用的时候ajax请求获取的文件流,但是js端并显示不出来该有的图片但是可以读出流,可能是接收和处理的方式造成的,若有大神用ajax请求能够正确读出ArrayBuffer的请指出。
这种方式是我成功接收并显示的方法。
数据解析
通过对应数据类型的请求,可以得到二进制数据,数据被存储在通过ArrayBuffer这个构造函数创建一个缓冲区内,取得数据后需要使用相对应的TypedArray进行解析。
类型化数组有以下几种:
名称 | 占用字节 | 描述 |
---|---|---|
Int8Array | 1 | 8位二补码有符号整数 |
Uint8Array | 1 | 8位无符号整数 |
Uint8ClampedArray | 1 | 8位无符号整型固定数组(数值在0~255之间) |
Int16Array | 2 | 16位二补码有符号整数 |
Uint16Array | 2 | 16位无符号整数 |
Int32Array | 4 | 32 位二补码有符号整数 |
Uint32Array | 4 | 32 位无符号整数 |
Float32Array | 4 | 32 位 IEEE 浮点数 |
Float64Array | 8 | 64 位 IEEE 浮点数 |
Int 为整型,Uint 为无符号数,Float 为浮点型,一个字节占八位,解析数据以"字节"为基础单位,无法直接读取位(不知道是不是这样,反正我是没找到方法)。解析数据的时候要了解数据的存储格式。
错误:
自己之前用ajax方式请求在做数据操作的时候,到了Uint8Array这个对象使用的时候完全转化不了,可能是由于接收的值不够准确吧
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!