Jangan membuat blob, buatlah secara singkat

Selamat datang bagi semua penggemar BlobBuilder. Akhirnya, sampai jumpa!

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

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

Berguna! Jadi sekarang, daripada menambahkan ke BlobBuilder, kita cukup membuat Blob dari array bagian data. 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 info selengkapnya tentang perubahan ini, lihat dokumen MMD tentang Blob.