为什么我只能在当前会话中使用blob

时间:2017-04-25 17:40:20

标签: javascript html youtube

我决定看看youtube是如何做他们正在做的事情的, 我觉得很奇怪,我无法直接访问视频,而是拥有 通过他们的网站访问。

当我注意到youtube正在使用时,这似乎很奇怪 普通视频标签。但问题是,它的src是BLOB的东西。 有人请向我解释为什么我只能在当前会话中使用BLOB,更准确地说 - 正在执行的过程是什么 在哪里,如何以及由谁?(是浏览器还是允许的服务器) 这种一次性的沟通,或两者兼而有之,如果是这样的话?)。

1 个答案:

答案 0 :(得分:1)

创建Blob URL的{​​{1}}的生命周期内存在document;或者,如果定义了Blob,则在Blob.prototype.close()实例上调用blobInstance.close()之前;或Blob在引用基础URL.revokeObjectURL()实例的Blob URL上调用。

  

8.6. Lifetime of Blob URLs

     

公开Blob的全局对象必须   维护一个 * Blob URL Store * ,它是创建的URL.[createObjectURL()][2]列表   通过Blob URL方法和Blob资源   每个都指的是。

     

当此规范说要向URL.createObjectURL()添加条目时   对于Blob URL StoreBlob URL输入,用户代理必须添加Blob以及对Blob URL引用的Blob的引用。< / p>      

当此规范说明要从Blob URL Store删除给定Blob URL Store或给定Blob URL的条目时,用户代理必须   从Blob中移除Blob URL及其引用的Blob。后续尝试取消引用此URL必须导致a   网络错误。

     

此规范添加了额外的卸载文档清理步骤:   用户代理必须从Blob URL Store中删除所有Blob URLs   在document内。

另见