2011-08-02 5 views
9

먼저 기술적 인 세계에서 약간의 사전 경험이있는 인턴이라서 제 질문에 대한 답변이 분명해 보이면 유감입니다. 나는 지금 며칠 동안 대답을 찾고 그것에 대해 보여줄 것이 거의 없다.HTML5로 JSON 객체 캐시하기

내 프로젝트는 전화 번호부를 개발하는 것이 었습니다. 내가 지금하고있는 일은 사용자가 앱을 사용하기 시작한 이후 검색된 상위 10 개 이름을 보여주는 빈번하게 검색된 상자가있는 것입니다. 나는 다음과 같은 정보를 다음 클라이언트 측 캐시 결과 JSON 개체를 만들기 위해 기획하고 있습니다 :

var myJSONObject = {"searched": [  {"firstname":firstName,"lastname":lastName,"PK":pk,"phone":phonenumber,"email":emailaddress,"bu":businessunit,"company":company,"building":building, "fax":fax, "timesvisited":"accumulator to keep track of visits to the name"} 

] 을};

내 머리 아픈 지금 JSON 개체를 캐시하는 방법을 알아 냈습니다. 내가 매니 페스트 파일을 만들었고 css 파일과 같은 특정 파일을 캐시하는 방법을 알고 있지만 위에 나열된 코드와 같은 것을 캐시하여 데이터가 저장되고 두 번째 방문시 페이지까지 표시 될 수있는 방법은 무엇입니까? ?

+0

... 아, 그것을 잊지':)' –

+0

하하 .. 내가 말했듯이, 나는 이것에 아주 새로운 ...하지만 당신의 권리. 아마 그것을 놓아주는 좋은 물건이다;). –

답변

10

Firefox 3.5, IE 8 및 Chrome 4 이상에서 지원되는 로컬 저장소를 사용할 수 있습니다. 로컬 저장소에 캐시를 저장하려면 :

localStorage['jsoncache'] = JSON.stringify(myJSONObject); 

그것을 검색하려면 :

myJSONObject = JSON.parse(localStorage['jsoncache']); 

공지 사항 어떻게 할 수있는 유일한 가게 문자열, 로컬 스토리지에서 오브젝트되지 않은 종류. 원하는 경우 jsoncache 키를 다른 것으로 변경할 수 있습니다.

+0

대단히 감사합니다! :디. –

+1

jsoncache는이 경우 동일한 디렉토리에있는 .txt 파일입니까? –

+0

문제가되지 않습니다! –

4

오브젝트를 작성, 유지 보수 및 검색하는 방법이 완전히 다르지는 않지만, Ajax를 통해로드하는 경우 HTTP 캐싱을 사용할 수 있습니다. 당신은 단지 로컬로 저장하려면

당신은 localStorage (단지 새로운 브라우저가 지원하는)를 사용할 수 있습니다 :

은 같은 것은 없다
// Serialize and store 
localeStorage['topten'] = JSON.stringify(myJSONObject) 

// Retrieve and deserialize 
var myJSONObject = JSON.parse(localeStorage['topten']) 
+1

감사합니다. :). 당신의 대답과 위의 대답이 나를 위해 이것을 분명하게 분명히했습니다. –