ब्लॉब न बनाएं, उसे बनाएं

BlobBuilder के सभी प्रशंसकों के लिए एक अहम जानकारी: यह सुविधा बंद होने वाली है!

BlobBuilder, 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]);

यह भी ध्यान रखें कि दूसरा ऑब्जेक्ट पैरामीटर ज़रूरी नहीं है. इन बदलावों के बारे में ज़्यादा जानने के लिए, Blob के बारे में MDN दस्तावेज़ देखें.