تم توفير دعم Blob لقاعدة البيانات المفهرسة في إصدار مطوّري البرامج من Chrome

إيجي كيتامورا
إيجي كيتامورا

لقد حصل إصدار مطوّري البرامج من Chrome على دعم لـ Blob على IndexedDB.

هذه ميزة طال انتظارها في Chrome، حيث تسمح لواجهة برمجة تطبيقات IndexedDB API بتخزين بيانات Blob واستردادها بدون تحويلها إلى سلسلة Base64.

توفِّر IndexedDB مساحة تخزين دائمة من نوع قيمة المفتاح والمقياس على نطاق واسع، وهي متاحة في معظم المتصفِّحات الحديثة (من الواضح أنّ متصفِّح Safari سيصبح متاحًا في نظامَي التشغيل iOS8 وMac OS X 10.10). يمكنك الاطّلاع على حالة التنفيذ.

Blob هي عبارة عن كائن ثنائي جديد يمكن لمحرّكات JavaScript التعامل معه. يتم توريث كائنات الملفات من Blob. يمكنك أيضًا جلب الصور والملفات مثل Blob عبر XMLHttpRequest. يمكنك الاطّلاع على حالة التنفيذ.

تخزين Blob على IndexedDB

ليست هناك طريقة لرصد مدى توفّر Blob في قاعدة البيانات المفهرسة. وعليك في الأساس تجربة الالتقاط ثم استخدام سلسلة بدلاً من Blob إذا لم تكن متاحة. في ما يلي بعض نماذج التعليمات البرمجية:

// Create an example Blob object
var blob = new Blob(['blob object'], {type: 'text/plain'});

try {
    var store = db.transaction(['entries'], 'readwrite').objectStore('entries');

    // Store the object  
    var req = store.put(blob, 'blob');
    req.onerror = function(e) {
        console.log(e);
    };
    req.onsuccess = function(event) {
        console.log('Successfully stored a blob as Blob.');
    };
} catch (e) {
    var reader = new FileReader();
    reader.onload = function(event) {
        // After exception, you have to start over from getting transaction.
        var store = db.transaction(['entries'], 'readwrite').objectStore('entries');

        // Obtain DataURL string
        var data = event.target.result;
        var req = store.put(data, 'blob');
        req.onerror = function(e) {
            console.log(e);
        };
        req.onsuccess = function(event) {
            console.log('Successfully stored a blob as String.');
        };
    };
    // Convert Blob into DataURL string
    reader.readAsDataURL(blob);
}

يتوفر دعم Blob لقاعدة البيانات المفهرسة حاليًا على Firefox وInternet Explorer أيضًا. يجب التحقق من دعم Safari.

نتمنّى لك وقتًا ممتعًا.