插件窝 干货文章 B站主页Banner的Blob URL究竟是如何生成的?

B站主页Banner的Blob URL究竟是如何生成的?

Blob URL 二进制 图片 789    来源:    2025-03-19

B站(哔哩哔哩)主页的Banner图片通常是通过Blob URL来加载的。Blob URL是一种特殊的URL格式,用于表示二进制数据(如图片、视频等)的临时链接。Blob URL的生成过程通常涉及以下几个步骤:

1. 获取二进制数据

  • B站服务器会生成或存储Banner图片的二进制数据。这些数据可能是通过后端服务动态生成的,也可能是从数据库中读取的。

2. 创建Blob对象

  • 在前端,JavaScript可以通过Blob对象来表示二进制数据。Blob对象可以包含图片、视频、音频等多媒体数据。
  • 例如,B站的前端代码可能会通过AJAX请求从服务器获取Banner图片的二进制数据,然后将其封装成一个Blob对象。

    const blob = new Blob([binaryData], { type: 'image/jpeg' });
    

3. 生成Blob URL

  • 一旦有了Blob对象,就可以使用URL.createObjectURL()方法来生成一个临时的Blob URL。这个URL可以直接用于<img>标签的src属性,从而在页面上显示图片。

    const blobUrl = URL.createObjectURL(blob);
    

4. 使用Blob URL

  • 生成的Blob URL可以直接赋值给<img>标签的src属性,从而在页面上显示Banner图片。

    const imgElement = document.createElement('img');
    imgElement.src = blobUrl;
    document.body.appendChild(imgElement);
    

5. 释放Blob URL

  • 由于Blob URL是临时的,当不再需要时,应该使用URL.revokeObjectURL()方法来释放它,以避免内存泄漏。

    URL.revokeObjectURL(blobUrl);
    

总结

B站主页Banner的Blob URL生成过程大致如下: 1. 从服务器获取Banner图片的二进制数据。 2. 使用Blob对象封装二进制数据。 3. 使用URL.createObjectURL()生成Blob URL。 4. 将Blob URL赋值给<img>标签的src属性,显示图片。 5. 在不再需要时,释放Blob URL。

这种机制允许B站动态加载和显示Banner图片,同时减少了直接暴露图片URL的风险。