2012-06-05 3 views
0

나는 무엇을 만들었는지 시도했다.로컬 스토리지 배열을 어떻게 구현합니까?

아래 모듈에서 localStorage.foo은 작동하지만 localStorage.session_array['privacy']은 정의되지 않은 상태로 반환한다.

이것은 현대적인 broswers를위한 프로토 타입 코드입니다.

var ISession = (function() 
{ 

    localStorage.session_array = 
    { 
     privacy:   0 
    }; 

    localStorage.foo = 1; 

    var SessionI = function () 
    { 
    }; 

    SessionI.prototype.get = function(type) 
    { 
     return localStorage.session_array[ type ]; 
    }; 

    SessionI.prototype.set = function(type, value) 
    { 
     localStorage.session_array[ type ] = value; 
     alert('|' + localStorage.foo); // returns 1 
     alert('|' + localStorage.session_array[ 'privacy' ]); // returns undefined 
    }; 

    return SessionI; 

})(); 

나는 비 배열 속성을 사용하여 이것을 구현하려고합니다.

답변

1

등의 데이터를 저장, 대신 store.js보고 할 수 있습니다. 사용 가능한 경우 localstorage를 지원하고 다른 저장 메커니즘 (globalStorage 및 UserData)을 사용하지 않는 경우 지원합니다. 가장 좋은 점은 JSON 인코딩 된 데이터도 저장할 수 있다는 것입니다.

// Store 'marcus' at 'username' 
store.set('username', 'marcus') 

// Get 'username' 
store.get('username') 

// Remove 'username' 
store.remove('username') 

// Clear all keys 
store.clear() 

// Store an object literal - store.js uses JSON.stringify under the hood 
store.set('user', { name: 'marcus', likes: 'javascript' }) 

// Get the stored object - store.js uses JSON.parse under the hood 
var user = store.get('user') 
alert(user.name + ' likes ' + user.likes) 

store.set('user', { name: 'marcus', likes: 'javascript' }) 
alert("Hi my name is " + store.get('user').name + "!") 

store.set('tags', ['javascript', 'localStorage', 'store.js']) 
alert("We've got " + store.get('tags').length + " tags here") 
+0

전역 저장소와 사용자 데이터의 의미를 자세히 설명해 주시겠습니까? –

+0

전역 저장소 및 사용자 데이터는 다른 브라우저에서 사용할 수있는 다른 유형의 로컬 저장소 메커니즘입니다. store.js는 브라우저가 지원한다면'localstorage' API를 사용할 것입니다. 그렇지 않으면 오래된 브라우저에서 globalstorage 또는 userdata (파일 시스템)에 저장하지만, 데이터에 액세스하는 자바 스크립트 코드는 완전히 동일합니다. –

3

로컬 스토리지는 모든 브라우저에서 지원 로컬 스토리지 밤은 이후 문자열

+0

나는 말할 수는 없지만, sessionStorage의 지속성은 적습니다. 이름에서 알 수 있듯이 데이터는 세션에서만 사용할 수 있습니다. – Musa

관련 문제