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

एरिक बिडेलमैन

BlobBuilder के आपके सभी प्रशंसकों के लिए सूचना. अब अलविदा!

JavaScript में Blobs (या फ़ाइलें) बनाने के लिए, BlobBuilder एक आसान एपीआई है. इसे 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 दस्तावेज़ देखें.