Способ узнать, когда ObjectUrl был загружен (чтобы отозвать его...)
Я хотел бы удалить свои BLOB-объекты после их загрузки пользователем:
var url = window.URL.createObjectURL(myBlob);
var a = document.createElement("a");
a.download = 'myFile' + fileExtension;
a.href = url;
a.click();//download launched
/** Here i want to revoke the ObjectURL and delete my Blob, but i dunno when? **/
Могу ли я сделать это без использования фиктивного таймера?
1 ответ
Решение
Чтобы просто отозвать URL-адрес при обращении к BLOB-объекту, используйте click
обработчик события.
a.onclick = function () {
window.URL.revokeObjectURL(url);
};
Чтобы проверить, что BLOB-объект действительно был загружен, вам необходимо загрузить его через XHR, где вы можете отслеживать ход его загрузки, используя progress
а также load
События. Насколько я знаю, вы не можете отслеживать ход загрузки в JavaScript для чего-то, инициированного вне XHR.
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest