Dukungan Blob untuk IndexedDB kini ada di Chrome Dev

Chrome Dev telah mendapatkan dukungan untuk Blob di IndexedDB.

Ini adalah fitur yang telah lama ditunggu untuk Chrome yang memungkinkan IndexedDB API dapat menyimpan dan mengambil Blob tanpa mengonversinya menjadi string Base64.

IndexedDB menyediakan penyimpanan persisten jenis nilai kunci berskala besar yang tersedia di sebagian besar browser modern (Safari tampaknya akan mendapatkan dukungan di iOS8 dan Mac OS X 10.10). Lihat status penerapannya.

Blob adalah objek biner seperti file yang dapat ditangani oleh mesin JavaScript modern. Objek file diwarisi dari Blob. Anda juga dapat mengambil gambar dan file sebagai Blob melalui XMLHttpRequest. Lihat status penerapannya.

Menyimpan Blob di IndexedDB

Tidak ada cara untuk mendeteksi ketersediaan Blob di IndexedDB. Pada dasarnya, Anda harus mencoba-menangkap, lalu menggunakan string, bukan Blob, jika tidak tersedia. Berikut adalah beberapa contoh kode:

// 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);
}

Dukungan blob untuk IndexedDB juga sudah tersedia di Firefox dan Internet Explorer. Dukungan Safari perlu diselidiki.

Selamat menikmati!