پشتیبانی Blob برای IndexedDB در Chrome Dev قرار گرفت

Chrome Dev پشتیبانی Blob را در IndexedDB ارائه کرده است.

این یک ویژگی مورد انتظار برای Chrome است که به IndexedDB API اجازه می‌دهد Blob را بدون تبدیل آن به رشته Base64 ذخیره و بازیابی کند.

IndexedDB فضای ذخیره‌سازی دائمی از نوع کلید-مقدار در مقیاس بزرگ را فراهم می‌کند که در اکثر مرورگرهای مدرن موجود است (ظاهراً سافاری در iOS8 و Mac OS X 10.10 پشتیبانی خواهد کرد). وضعیت اجرای آن را بررسی کنید.

Blob یک شی باینری فایل مانند است که موتورهای جاوا اسکریپت مدرن می توانند آن را اداره کنند. اشیاء فایل از Blob به ارث می رسد. همچنین می توانید تصاویر و فایل ها را به صورت Blob از طریق XMLHttpRequest واکشی کنید. وضعیت اجرای آن را بررسی کنید.

ذخیره یک Blob در IndexedDB

هیچ راهی برای شناسایی ویژگی در دسترس بودن Blob در IndexedDB وجود ندارد. شما اساسا باید سعی کنید catch کنید و اگر در دسترس نیست از رشته به جای 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 برای IndexedDB در حال حاضر در فایرفاکس و اینترنت اکسپلورر نیز موجود است. پشتیبانی سافاری باید بررسی شود.

لذت ببرید!