Jangan membuat blob, buatlah secara singkat

Ini yang harus dipikirkan semua penggemar BlobBuilder, selamat tinggal!

BlobBuilder adalah API yang praktis untuk membuat Blob (atau File) dalam JavaScript. Sudah ada sejak Chrome 8, FF 6, dan IE 10 tetapi belum pernah dikirim di Safari, dan kemungkinan tidak akan pernah. Perubahan spesifikasi terbaru pada File API menyertakan konstruktor baru untuk Blob, yang pada dasarnya membuat BlobBuilder tidak relevan. Faktanya, Nightly Safari telah menonaktifkannya dan Chrome akan mulai memperingatkan Anda di konsol segera.

Sebagai perbandingan, di bawah ini adalah kode yang sama yang menggunakan BlobBuilder yang tidak digunakan lagi dan konstruktor Blob baru. Cuplikan membuat stylesheet dan menambahkannya ke 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);

Praktis! Jadi, sekarang kita dapat membuat Blob dari array bagian data, bukan menambahkan ke BlobBuilder. Bagian data dapat berupa jenis yang berbeda (DOMString, ArrayBuffer, Blob) dan dalam urutan apa pun. Contoh:

var blob = new Blob(['1234567890', blob, arrayBuffer]);

Perhatikan juga bahwa parameter objek kedua bersifat opsional. Untuk mengetahui informasi selengkapnya tentang perubahan ini, baca dokumentasi MDN di Blob.