📜  JavaScript |斑点

📅  最后修改于: 2022-05-13 01:56:48.990000             🧑  作者: Mango

JavaScript |斑点

Blob 对象只是一组字节,用于保存存储在文件中的数据。看起来 blob 是对实际文件的引用,但实际上并非如此。一个 blob 有它的大小和 MIME,就像一个简单的文件一样。 Blob 数据存储在用户的内存或文件系统中,具体取决于浏览器功能和 Blob 的大小。一个简单的 blob 可以在我们希望的任何地方使用,就像文件一样。
Blob 的内容可以很容易地作为 ArrayBuffer 读取,这使得 Blob 非常方便地存储二进制数据。

创建 Blob 的语法:

var abc = new Blob(["Blob Content"], 
    {type: Blob Property containing MIME property})

除了直接将数据插入 Blob 之外,我们还可以使用 FileReader 类从该 Blob 中读取数据:

var abc = new Blob(["GeeksForGeeks"], 
                {type : "text/plain"});
var def = new FileReader();
def.addEventListener("loadend", function(e) {
    document.getElementById("para").innerHTML
                     = e.srcElement.result;
});
  
def.readAsText(abc);

在 HTML 文件中,我们只需创建一个简单的

元素,id=”para”:

您将获得以下输出:

GeeksForGeeks

Blob URL:就像我们有引用本地文件系统中一些真实文件的文件 URL 一样,我们也有引用 Blob 的 Blob URL。 Blob URL 与任何常规 URL 非常相似,因此几乎可以在我们可以使用通用 URL 的任何地方使用。 Blob 可以很容易地用作 或其他标签的 URL,以显示其内容。可以使用 createObjectURL 对象获取指向 blob 的 blob URL:



  

    
        JavaScript Blob
    

  

    Download
  
    

  

输出:
您将获得下载的动态生成的 Blob,其内容为 Geeks For Geeks:

Blob To ArrayBuffer: Blob 构造函数可用于从包括任何类型的 BufferSource 在内的任何内容创建 Blob。对于低级处理,我们可以使用 FileReader 从 blob 中使用最低级别的 ArrayBuffer:

let def = new FileReader();
  
def.readAsArrayBuffer(abc);
  
def.onload = function(event) {
    let res = def.result;
};

使用 Blob 的优点:

  • Blob 是向数据库添加大型二进制数据文件的好选择,并且可以轻松引用。
  • 在使用 Blob 时,使用权限管理很容易设置访问权限。
  • Blob 的数据库备份包含所有数据。

使用 Blob 的缺点:

  • 并非所有数据库都允许使用 Blob。
  • 由于所需的磁盘空间量和访问时间,Blob 效率低下。
  • 由于 Blob 的文件大小,创建备份非常耗时。