سؤال

أحاول الحفظ blob البيانات (الرمز المفضل) التي تم استردادها عبر AJAX، إلى localStorage.

شفرة :

var xhr = new XMLHttpRequest();
xhr.open('GET', 
'http://g.etfv.co/http://www.google.com',
true);
xhr.responseType = "blob";
xhr.onload = function(e){ //Stringify blob...
    localStorage['icon'] = JSON.stringify(xhr.response);
    //reload the icon from storage
    var fr = new FileReader();
    fr.onload = 
        function(e) {
            document.getElementById("myicon").src = fr.result;
        }
    fr.readAsDataURL(JSON.parse(localStorage['icon']));
    }
xhr.send(null);

الكود مقتبس من هنا مع تعديلات طفيفة للعمل معها localStorage.يحفظ localStorage جميع البيانات كسلاسل، لذلك يجب أن تكون البيانات النقطية كذلك مقيد بطريقة أو بأخرى قبل أن يتم إنقاذها.

JSON لا يتعامل مع النقط كأحد الأنواع المدعومة، لذلك ليس من المستغرب أن يفشل هذا الرمز.

هل هناك أي طريقة للحصول على النقطة في التخزين المحلي؟

هل كانت مفيدة؟

المحلول

ما عليك سوى تخزين النقطة كعنوان URI للبيانات في وحدة التخزين المحلية

var xhr = new XMLHttpRequest();
xhr.open('GET', 
'http://g.etfv.co/http://www.google.com',
true);
xhr.responseType = "blob";
xhr.onload = function(e){ //Stringify blob...
    //reload the icon from storage
    var fr = new FileReader();
    fr.onload = 
        function(e) {
            localStorage['icon'] = e.target.result;
            document.getElementById("myicon").src = localStorage['icon'];
        }
    fr.readAsDataURL(xhr.response);
}
xhr.send(null);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top