html - 在 IndexedDB 中保存 ArrayBuffer

标签 html firefox google-chrome indexeddb arraybuffer

如何将二进制数据(在 ArrayBuffer 对象中)保存到 IndexedDB 中?

IndexedDB 规范没有提到 ArrayBuffer——这是否意味着它不受支持(我必须将 ArrayBuffer 打包为字符串或数组?)。

最佳答案

简单地保存 ArrayBuffer 应该“正常工作”。我相信它适用于所有当前的 IndexedDB 实现。

即像这样的东西:

    var trans = db.transaction("mystore", IDBTransaction.READ_WRITE); // or "readwrite"
    trans.objectStore("mystore").put(myArrayBuffer, "mykey");

发现这是由规范定义的……至少可以说是具有挑战性的……。但它是这样的:

  • IndexedDB 对所有存储数据使用“结构化克隆”定义。
  • “结构化克隆”在 HTML5 规范中定义,并提到了许多 Javascript 原生的数据类型以及一些其他类型,如文件和 Blob。
  • Khronos 的 ArrayBuffer 规范定义了 ArrayBuffers 并指定“结构化克隆”的 HTML5 定义应该更改为也克隆 ArrayBuffers。

是的,我知道,我也不会找到它。

关于html - 在 IndexedDB 中保存 ArrayBuffer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8833387/

相关文章:

html - 为什么我的 slider 在 Firefox 中显示不正确?

html - 如何显示整页背景图片?

jquery - $.css ('transform' ) 返回错误值旋转

javascript - 在 Firefox 中鼠标移动之前,背景图像不会更改 onclick

javascript - 在 HTML5 中录制在 Firefox 中不起作用

google-chrome - 缓存 list : Application Cache Error event: Resource fetch failed (2)的原因

javascript - asp.net 中的验证工具

javascript - 离开窗口选项卡时图像堆叠(重叠)

html - 为什么当浏览器大小改变时我的列不调整大小

css - Chrome float 正确调整大小错误?