حباب ها را نسازید، آنها را بسازید

در اینجا یک سر به همه شما طرفداران BlobBuilder است، خداحافظی می کند!

BlobBuilder یک API مفید برای ایجاد Blobs (یا فایل ها) در جاوا اسکریپت است. از Chrome 8، FF 6 و IE 10 وجود داشته است، اما هرگز در Safari ارسال نشده است و احتمالاً هرگز نخواهد شد. تغییرات مشخصات اخیر در File API شامل یک سازنده جدید برای Blob است که اساسا BlobBuilder را نامربوط می کند. در واقع، شب‌های سافاری قبلاً آن را غیرفعال کرده‌اند و کروم خیلی زود در کنسول به شما هشدار می‌دهد.

برای مقایسه، در زیر همان کد با استفاده از 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]);

همچنین توجه داشته باشید که پارامتر شیء دوم اختیاری است. برای اطلاعات بیشتر در مورد این تغییرات، به اسناد MDN در Blob مراجعه کنید.