جافا سكريبت حفظ النقطة إلى التخزين المحلي
-
21-12-2019 - |
سؤال
أحاول الحفظ 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);
لا تنتمي إلى StackOverflow