blob 协议是什么
我在看 b 站视频播放的时候就发现他们视频是用的 blob 协议。
上面的视频播放就是这种链接,src 的值是 blob:https://www.bili这种。
而不是我们以为的 https://www.bili这种。
他用的就是这种 blob URL。如果直接复制这个链接在浏览器地址栏是打不开的。
什么是blob URL
blob URL 也叫对象URL,这个是与 Blob 与 file 对象一起使用。
Blob URL 只能由浏览器在内部生成。
是使用 URL.createObjectURL()将创建一个对 Blob 或者 File 对象的特殊引用。
URL.revokeObjectURL()释放该引用。这些URL只能在浏览器的单个实例和同一会话中本地使用。也就是这个页面的生命周期。
为什么要使用他
Blob URL/Object URL 是一种伪协议,允许 BlobheFile 对象用作图形,二进制数据的下载链接等内容的 URL 源。
例如,你不能将 image 对象的原始字节数据交给他,因为他不知道如何梳理他。例如,他需要通过 URL 加载图像,也就是二进制数据,这适用于任何需要URL 作为源的内容。
与其上传二进制数据,然后通过URL 返回他。不如使用额外的本地步骤,以便能够直接访问数据,而不需要通过服务器。
比 data URL
它是一个 data URI 的一个更好的替代方案,后者是编码为 base64 的字符串。Data URI 的问题实在 JavaScript 中每个字符占用两个字节。
最重要的是,由于 base-64 编码,增加了 33%。Blobs 是纯二进制字节数据,不像 data-URI 那样有任何显著开销,这使得他们处理起来更快,更小。