لا تنشئ فقاعات بل أنشئها

إيريك بيدلمان

نودّ تنبيهك إلى كل مشجّعي BlobBuilder، وإلى اللقاء.

BlobBuilder هي واجهة برمجة تطبيقات مفيدة لإنشاء كائنات 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]);

لاحظ أيضًا أن معلمة الكائن الثانية اختيارية. لمزيد من المعلومات عن هذه التغييرات، راجِع مستندات MDN على Blob.