2013-08-19 4 views
0

브라우저에서 로컬 저장소로 약간 작업했습니다. 하지만 나는 키 - 값 쌍으로 문자열을 다루었 다. (단일 키용) 문자열 목록을 저장하고 읽을 수있는 방법이 있습니까 ??로컬 저장소에 문자열 목록 저장

예를 들어 페이지에 내 친구를 표시해야한다고 가정 해보십시오. 사실 로컬 저장소를 사용할 수 있다면 친구 목록을 표시 할 때마다 데이터베이스를 쿼리 할 필요가 없습니다. (내 애플리케이션에 대해 일정한 일관성이 없을 것임을 알고 있습니다.) 이 방법을 사용할 수 있습니까?

은 사전에 감사합니다 :)

+1

만약 있음 DB :) – tymeJV

+0

배열이나 문자열 목록을 저장할 객체를 사용할 수 없습니까? – j08691

답변

4

- 당신이 할 수 있습니다. localStorage는 문자열 만 저장하기 때문에 쉽게 구문 분석 할 수있는 형식으로 저장해야합니다.

문자열 목록에 대한 가장 간단한 접근법은 문자열 배열로 저장하는 것입니다.

보관 :

localStorage['mylist'] = JSON.stringify(['string1', 'string2']); 

로드 :

var mylist = JSON.parse(localStorage['mylist']); 

더 추가 및 저장 : 친구 목록 영원히 당신을 조회 할거야 후 변화

mylist.push('newstring'); 
localStorage['mylist'] = JSON.stringify(mylist); 
+0

마지막 줄은 아마도'localStorage [ 'mylist'] = JSON.stringify (mylist);'이어야합니다. – cHao

+0

@cHao Doh! 복사 붙여 넣기 버그 - thx! – dc5

+0

@ dc5 대단히 고맙습니다 ... 도움이 되었어요. 정확하게 제가 원했던 것이 었습니다. :) –

0

당신은 JSON에 배열을 변환 할 수 있습니다. 그것은 하나의 선택입니다. 변환 한 다음 문자열로 저장 한 다음 다시 읽고 변환합니다.

이를 위해 나는 다음과 같습니다 기능의 몇 가지를 사용하고 그들은 다음과 같이 호출됩니다 또한

jsonStore.putJson("friendInfo", frientInfo); // friendInfo is an object or array 

var readFriendInfo = jsonStore.getJson("friendInfo"); 

var jsonStore = function() { 
    return { 
     getJson: function(key) { 
      var ret = localStorage[key]; 
      if (ret) { 
       try { 
        ret = JSON.parse(ret); // use JSON3 to handle multiple browsers/versions 
       } catch (e) { 
        ret = undefined; // for parse failure 
       } 
      } 
      return ret; 
     }, 
     putJson: function(key, value) { 
      localStorage[key] = JSON.stringify(value); // use JSON3 for this too 
     } 
    }; 
}(); 

당신은 이런 일을 할 수있는 약 문자열을 가정 각 친구는 배열 요소 인 friendInfo에 있으며 각 색인은 다른 친구를 나타냅니다.

for (var i=0; i < friendInfo.length ; ++i) { 
    localStorage.setItem("friend" + i, firentInfo[i]); 
} 

나는이 작업을 수행 할 때, 나는 보통 얼마나 많은 말해 다른 항목 저장 : 예

localStorage.setItem("friend.length", friendInfo.length); 
관련 문제