මම ජාවාස්ක්රිප්ට් වස්තුවක් HTML5 හි ගබඩා කිරීමට කැමතියි localStorage
, නමුත් මගේ වස්තුව නූලකට පරිවර්තනය වෙමින් පවතින බව පෙනේ.
මට භාවිතයෙන් ප්රාථමික ජාවාස්ක්රිප්ට් වර්ග සහ අරා ගබඩා කර ලබා ගත හැක localStorage
, නමුත් වස්තූන් ක්රියා කරන බවක් නොපෙනේ. ඔවුන් එසේ කළ යුතුද?
මෙන්න මගේ කේතය:
var testObject = { 'one': 1, 'two': 2, 'three': 3 };
console.log('typeof testObject: ' + typeof testObject);
console.log('testObject properties:');
for (var prop in testObject) {
console.log(' ' + prop + ': ' + testObject[prop]);
}
// Put the object into storage
localStorage.setItem('testObject', testObject);
// Retrieve the object from storage
var retrievedObject = localStorage.getItem('testObject');
console.log('typeof retrievedObject: ' + typeof retrievedObject);
console.log('Value of retrievedObject: ' + retrievedObject);
කොන්සෝලය ප්රතිදානය වේ
typeof testObject: object
testObject properties:
one: 1
two: 2
three: 3
typeof retrievedObject: string
Value of retrievedObject: [object Object]
එය මට පෙනෙන ආකාරයට setItem
ක්රමවේදය ආදානය ගබඩා කිරීමට පෙර එය නූලකට පරිවර්තනය කරයි.
මෙම හැසිරීම සෆාරි, ක්රෝම් සහ ෆයර්ෆොක්ස් වල මම දකිමි, එබැවින් එය HTML5 වෙබ් ආචයන පිරිවිතර පිළිබඳ මගේ වරදවා වටහා ගැනීම මිස බ්රව්සරයට විශේෂිත වූ දෝෂයක් හෝ සීමාවක් නොවේ.
Http://www.w3.org/TR/html5/infrastructure.html හි විස්තර කර ඇති ව්යුහාත්මක ක්ලෝන ඇල්ගොරිතම පිළිබඳ අවබෝධයක් ලබා ගැනීමට මම උත්සාහ කර ඇත්තෙමි. . එය පවසන දේ මට සම්පූර්ණයෙන් තේරෙන්නේ නැත, නමුත් සමහර විට මගේ ගැටලුවට මගේ වස්තුවේ ගුණාංග ගණන් නොගැනීම සමඟ සම්බන්ධ විය හැකිය (???)
පහසු විසඳුමක් තිබේද?
යාවත්කාලීන කිරීම: W3C අවසානයේ ව්යුහාත්මක-ක්ලෝන පිරිවිතර පිළිබඳ ඔවුන්ගේ මනස වෙනස් කළ අතර ක්රියාත්මක කිරීම් වලට ගැලපෙන පරිදි පිරිවිතර වෙනස් කිරීමට තීරණය කළේය. Https://www.w3.org/Bugs/Public/show_bug.cgi?id=12111 බලන්න . එබැවින් මෙම ප්රශ්නය තවදුරටත් 100% වලංගු නොවේ, නමුත් පිළිතුරු තවමත් උනන්දුවක් දැක්විය හැකිය.