Dre*_*kes 9 javascript html5 garbage-collection blob
在现代浏览器中,可以将大对象分配为a Blob,然后通过URL请求访问它.此URL将在浏览器的其他位置提供存储的对象(例如图像的数据).
浏览器如何知道何时不再需要此URL,并且相应的Blob数据可以自由地进行垃圾回收?
Dre*_*kes 10
浏览器最终将清除此资源,但在从内存/磁盘中删除之前可能需要一些时间(数小时或数天).
如果您希望明确删除该对象,可以通过以下方式删除revokeObjectURL.
var blob = new Blob([/*JPEG data*/], {type: "image/jpeg"}),
url = (window.URL || window.webkitURL),
objectUrl = url.createObjectURL(blob);
// use the object URL, eg:
var img = new Image();
img.onload = function()
{
// release the object URL once the image has loaded
url.revokeObjectURL(objectURL);
};
// trigger the image to load
image.src = objectURL;
Run Code Online (Sandbox Code Playgroud)