อย่าสร้างก้อนหิน แต่จงสร้าง

นี่เป็นการแจ้งเตือนสำหรับแฟนๆ BlobBuilder ทุกคน ว่าไปแล้วนะครับ

BlobBuilder เป็น API ที่มีประโยชน์สำหรับการสร้าง Blob (หรือไฟล์) ใน JavaScript อัปเดตมาตั้งแต่ Chrome 8, FF 6 และ IE 10 นะ แต่ไม่เคยทำผ่าน Safari มาก่อนและมีแนวโน้มว่าจะไม่เป็นเช่นนั้น การเปลี่ยนแปลงข้อกำหนดล่าสุดของ File API มีเครื่องมือสร้างใหม่สำหรับ Blob ซึ่งทำให้ BlobBuilder ไม่เกี่ยวข้อง ที่จริงแล้ว โปรแกรม Safari ในเวลากลางคืนได้ปิดใช้ไปแล้วและ Chrome จะเริ่มแจ้งเตือนคุณในคอนโซลเร็วๆ นี้

เพื่อการเปรียบเทียบ ด้านล่างคือโค้ดเดียวกันที่ใช้ BlobBuilder ที่เลิกใช้งานแล้วและตัวสร้าง Blob ใหม่ ข้อมูลโค้ดจะสร้างสไตล์ชีตและนำไปต่อท้าย 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);

มีประโยชน์ ดังนั้น แทนที่จะเพิ่ม BlobBuilder ลงไป เราสามารถสร้าง Blob จากอาร์เรย์ของส่วนต่างๆ ได้เลย ส่วนข้อมูลสามารถเป็นประเภทต่างๆ (DOMString, ArrayBuffer, Blob) และเรียงลำดับอย่างไรก็ได้ เช่น

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

และโปรดทราบว่าพารามิเตอร์ออบเจ็กต์ที่ 2 นั้นไม่บังคับ ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงเหล่านี้ได้ที่เอกสาร MN ใน Blob