Um aviso para todos os fãs do BlobBuilder. Tchau!
A BlobBuilder
é uma API útil para criar blobs (ou arquivos) em JavaScript. Ele existe desde o Chrome 8, FF 6 e IE 10, mas nunca foi lançado no Safari e provavelmente nunca será lançado. Mudanças recentes nas especificações da API File incluem um novo construtor para Blob
, o que basicamente torna BlobBuilder
irrelevante. Na verdade, o Safari todas as noites já o desativou, e o Chrome começará a enviar avisos no console em breve.
Para fins de comparação, abaixo está o mesmo código usando o BlobBuilder
descontinuado e o novo construtor Blob
. O snippet cria uma folha de estilo e a anexa ao DOM.
BlobBuilder()
:
window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder ||
window.MozBlobBuilder || window.MSBlobBuilder;
window.URL = window.URL || window.webkitURL;
var bb = new BlobBuilder();
bb.append('body { color: red; }');
var blob = bb.getBlob('text/css');
var link = document.createElement('link');
link.rel = 'stylesheet';
link.href = window.URL.createObjectURL(blob);
document.body.appendChild(link);
Blob()
:
window.URL = window.URL || window.webkitURL;
var blob = new Blob(['body { color: red; }'], {type: 'text/css'});
var link = document.createElement('link');
link.rel = 'stylesheet';
link.href = window.URL.createObjectURL(blob);
document.body.appendChild(link);
Prático! Agora, em vez de anexar a uma BlobBuilder
, podemos simplesmente criar o Blob
usando uma matriz de partes de dados. As partes de dados podem ser de tipos diferentes (DOMString
, ArrayBuffer
, Blob
) e em qualquer ordem. Exemplo:
var blob = new Blob(['1234567890', blob, arrayBuffer]);
O segundo parâmetro de objeto é opcional. Para mais informações sobre essas mudanças, consulte os documentos do MDN no Blob.