Un avviso per tutti i fan di BlobBuilder: questa funzionalità non sarà più disponibile.
BlobBuilder
è un'API utile per creare blob (o file) in JavaScript. È disponibile da Chrome 8, FF 6 e IE 10, ma non è mai stato incluso in Safari e probabilmente non lo sarà mai. Le modifiche recenti alle specifiche dell'API File includono un nuovo costruttore per Blob
, che rende sostanzialmente irrilevante BlobBuilder
. Infatti, le build notturne di Safari lo hanno già disattivato e a breve Chrome inizierà a inviarti avvisi nella console.
Per fare un confronto, di seguito è riportato lo stesso codice che utilizza il costruttore BlobBuilder
deprecato e il nuovo costruttore Blob
. Lo snippet crea un foglio di stile e lo aggiunge al 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);
Comodo! Ora, invece di aggiungere un elemento a un BlobBuilder
, possiamo semplicemente creare il Blob
da un array di parti di dati. Le parti di dati possono essere di tipi diversi (DOMString
, ArrayBuffer
, Blob
) e in qualsiasi ordine. Ad esempio:
var blob = new Blob(['1234567890', blob, arrayBuffer]);
Tieni inoltre presente che il secondo parametro oggetto è facoltativo. Per ulteriori informazioni su queste modifiche, consulta la documentazione MDN su Blob.