Novo construtor de Blob no IE10
O IE10 no Windows 8 Release Preview adiciona suporte ao construtor de Blob
. Já escrevemos sobre e demonstramos o suporte do IE10 para uma interface BlobBuilder
; uma interface em progresso no File API: Rascunho de trabalho do Writer W3C. Esta interface permite aos desenvolvedores trabalhar com arquivos no PC cliente. Recentemente, o grupo de trabalho do W3C desaprovou a interface BlobBuilder
em prol de um novo construtor de Blob
. Esta postagem explica as diferenças entre os dois.
Comparando o construtor de Blob e a interface BlobBuilder
Tanto o construtor de Blob
quanto a interface BlobBuilder
permitem aos desenvolvedores da Web criar arquivos no cliente. A diferença está na sintaxe. Enquanto o BlobBuilder
requer que cada porção do blob seja reunida durante outra chamada para o método de acréscimo, o construtor de Blob
pode apresentar uma matriz de argumentos. Veja como criar um arquivo de texto simples usando tanto o BlobBuilder
quanto o construtor de Blob
:
// using the Blob constructor
var textBlob1 = new Blob(["Hello", " world!"], { type: "text/plain", endings: "transparent" });
// using the MSBlobBuilder interface
var bb = new MSBlobBuilder();
bb.append("Hello");
bb.append(" world!");
var textBlob2 = bb.getBlob("text/plain");
O construtor de Blob
apresenta dois argumentos: a matriz de conteúdo a ser inserido dentro do blob e um objeto de dicionário opcional, que pode incluir dois membros, type
e endings
. A matriz de conteúdo para o blob pode conter objetos blob, cadeias de texto ou buffers de matriz.
As versões recentes do Firefox e do Chrome também oferecem suporte ao construtor de Blob
. O IE10 ainda oferece suporte à interface MSBlobBuilder
prefixada, além do novo construtor de Blob
. Neste momento, o Firefox e o Chrome também oferecem suporte à interface BlobBuilder
de prefixos dos fornecedores.
Detecção do recurso construtor de Blob
Assim como todos os novos recursos, nós recomendamos o uso de detecção do recurso para determinar se o construtor de Blob
está disponível no navegador onde o seu código está sendo executado. Você pode usar algo como:
if (typeof Blob !== "undefined") {
// use the Blob constructor
} elseif (window.MSBlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder) {
// use the supported vendor-prefixed BlobBuilder
} else {
// neither Blob constructor nor BlobBuilder is supported
}
Se você executar a demonstração de Test Drive do BlobBuilder
com a janela do console das Ferramentas de Desenvolvedor F12 aberta, ela registrará se os blobs estão sendo construídos por meio do construtor de Blob
ou por meio do BlobBuilder
.
O acréscimo do construtor de Blob
no IE10 permite a você escrever códigos compatíveis que funcionem em todos os navegadores.
—Sharon Newman, gerente de programas, Internet Explorer