gpt4 book ai didi

javascript - Blob 二进制数据存储在哪里?

转载 作者:数据小太阳 更新时间:2023-10-29 04:53:43 26 4
gpt4 key购买 nike

给定

var data = new Array(1000000);
for (var i = 0; i < data.length; i++) {
data[i] = 1;
}
var blob = new Blob([data]);

数组的二进制数据存储在哪里?

最佳答案

Blob 代表一堆可以存在于任何地方的数据。 File API specification有意不提供任何读取 Blob 内容的同步方式。

这里有一些具体的可能性。

  1. 当您通过构造函数创建一个 Blob 并将内存数据传递给它时,例如 Uint8Array , Blob 的内容至少存在一段时间。
  2. 当你从 <input type="file"> 得到一个 Blob 时,Blob 的内容位于磁盘上,位于用户选择的文件中。规范提到了快照,但没有实现,因为它会给用户操作带来很多延迟。
  3. 当您从另一个客户端存储 API(如 IndexedDB 或缓存存储 API)获取 Blob 时,Blob 的内容位于磁盘上 API 的后备存储中。
  4. 某些 API 可能会返回一个 Blob,其数据流来自网络。 XMLHttpRequest 规范使这成为不可能,而且我认为获取规范还需要在创建 Blob 之前检索整个响应。但是, future 可能会有一个流式传输 HTTP 响应的规范。
  5. 通过片段数组通过 Blob 构造函数创建的 Blob 的内容可能分散在上述所有地方。

在 Chrome 中,我们使用多进程架构,其中浏览器进程拥有所有事件 Blob 的中央注册表,并充当 Blob 内容的真实来源。当在渲染器中(通过 JavaScript)创建 Blob 时,其内容将通过 IPC、共享内存或临时文件移动到浏览器进程,具体取决于 Blob 的大小。浏览器进程也可能将内存中的 Blob 内容逐出到临时文件中。上一个答案中提到的 500mb 限制在 2016 年左右取消。更多实现细节在 the README for Chrome's Blobs subsystem 中。 .

关于javascript - Blob 二进制数据存储在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38239361/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com