2014-02-16 2 views
1

나는 부팅 할 때 몇 십여 가지 항목을 가져 오는 웹 앱을 가지고있다. 이 모든 항목은 JSON이며 1kb보다 작습니다.JSON 객체와 localStorage/sessionStorage/IndexedDB/WebSQL/etc를 사용 하시겠습니까?

이제는 질문에서 볼 수있는 여러 가지 저장 옵션이 있습니다.

나는 이러한 객체를 브라우저 JS의 변수에 저장하려고 생각하고있었습니다. 왜 내가이 브라우저 저장소를 사용하고 싶어하는지 모르겠다.

따라서 JS 대신 변수 대신 브라우저 기반 저장소를 사용하는 이유는 무엇입니까? 특정 데이터 크기에서 브라우저 저장 용량을 사용하는 것이 좋을 수 있습니다 (예 : 100kb 이후부터는 JS 변수를 사용하지 않는 것이 좋습니다.

var myModel = {}

참고

사용자가 자신이 서버에서 신선한 콘텐츠를합니다 응용 프로그램을 입력 할 때마다. 내용이 캐시하기에 너무 실시간입니다. `

+0

콘텐츠를 항상 신선한 상태로 유지해야한다고 말한 다음 저장 또는 캐싱을 고려하는 이유는 무엇입니까? 실제로 대역폭을 낭비하고 있습니다. 왜 json을 반환하는 웹 서비스에서 가져 오지 않습니까? –

+0

나는 단지 내 이해를 넓히고있다. 나는 이제 그 어떤 것도 필요가 없다는 것을 알았다! – xrDDDD

답변

1

localStorage 및 sessionStorage는 캐싱 문제를 해결합니다. 그것들을 쿠키라고 생각하십시오. 캐싱을 원하지 않는다고 했으므로 무시할 수 있습니다.

JavaScript 개체는 기본적으로 O (1) 조회 테이블 (How is a JavaScript hash map implemented? 참조)과 유사하게 동작하며, 두 가지 답변 모두 유용한 정보를 가지므로 두 가지 대답을 모두 읽고 꼭 기억해야하는 최대 메모리 제한은 없습니다. of 또는 다른 솔루션이 더 나은 선택이되는 지점

필드에 O (1) 조회가 필요한 경우 IndexedDB에 데이터를 삽입하는 추가 단계를 고려해야한다고 생각하는 유일한 이유는 그것은 당신이 사용하고있는 객체 키가 아닙니다.

+0

그게 내가 듣고 싶었던거야, 고마워! 읽을거야! – xrDDDD

7

localStorage, globalStoragesessionStorage :

이 기능은 "웹 저장"을 구현 한 브라우저에서 준비, 그들은 모두의 HashMap의 종류, 문자열 키와 문자열 값 사이의지도를 참조 . 그러나 인생은 다릅니다. 활성 페이지가 폐쇄되면 sessionStorage 청소 될 수 있지만, localStorage는 영구적입니다. (MDN DOM Storage guide)

  • 이 점은되고 사용되지 않습니다에 대한 인 globalStorage이있다 게코 1.9.1 (파이어 폭스 3.5) 지원되지 않는 이후 Gecko 13 (Firefox 13) 이후로 우리는 localStorage을 사용해야합니다. 이 2의 차이점은 HTML5 범위 지원 (스키마 + 호스트 이름 + 비표준 포트)에 불과했습니다.

이들에 당신을 위해 유용 할 수있다 :

- 공유 사이트에 다른 페이지 사이의 오브젝트.

- 오프라인 프로그래밍.

대형 개체를 -Caching

- 또는 당신은 지역 영구 저장에 필요할 때마다.


색인화 :

색인화 데이터 (예컨대, 대출 라이브러리의 DVD 카탈로그) 및 애플리케이션 돈 '대량 저장 애플리케이션에 유용 (예 : 메일 클라이언트, 할 일 목록 및 메모장)

와 같은 지속적인 인터넷 연결이 필요하지 않습니다. 14,당신이 IndexedDB 당신을 위해 유용 여부를 모르거나하지 않는 경우, IndexedDB를 사용에 관한 쉽게 답을 찾을 수 있습니다 MDN에서이 인용을 기반으로, 바로이 질문에 대한 답변 :

하면 많은 양을 저장할 수 있습니까 클라이언트의 데이터는 무엇입니까? 그렇다면이므로 사용을 고려하십시오.

앱을 오프라인으로 설정해야합니까? 그렇다면이므로 IndexedDB 사용을 고려하십시오.

앱을 지속적으로 인터넷에 연결해야합니까? 그렇다면 다른 요인에 따라 옵션을 유지합니다.

내용이 너무 캐싱와 실시간됩니다 : 당신이 말한대로 때문에 지금까지 당신이 그것을 필요로하지 않는 오프라인으로 작업하는 것보다 그래서 다른


, 나는 생각한다.

다음은 개체 공유 및 많은 양의 데이터 관리와 같은 몇 가지 기능을 제공합니다.

+0

왜 내가 전에 sessionStorage에 대해 몰랐습니까? 내 모든 사이트 페이지의 슈퍼 전역 변수와 같습니다. 이것은 많은 것들을 달성하는 데 도움이 될 수 있습니다. 정보 주셔서 감사. . – MJoraid

+0

답변이 아니더라도. 이것은 ** 질문 **에서 사용 된 다른 브라우저 저장소에 대한 아주 좋은 설명입니다! – xrDDDD

관련 문제