sessionStorage 및 localStorage의 범위


105

sessionStorage 및 localStorage에 대한 문서를 읽었지만 범위가 무엇인지 이해하지 못합니다 : 도메인, 특정 페이지?

예를 들어 다음 페이지가있는 경우 :

http://example.com/products.aspx?productID=1

http://example.com/products.aspx?productID=2

http://example.com/services.aspx?serviceID=3

위의 각 페이지에서 실행하는 경우 (idvalue가 쿼리 문자열의 값이 됨) :

localStorage.setItem('ID',idvalue);

3 개의 서로 다른 값이 저장 될까요? 아니면 값이 서로 덮어 쓰게 될까요?

답변:


87

값이 서로 덮어 쓰게됩니다. 각 키 이름 쌍은 경로에 관계없이 프로토콜 및 도메인에 대해 고유합니다.

영향을받는 도메인은 document.domain속성을 통해 변경할 수 있습니다 .

  • sub.example.com-> example.com가능 (하위 도메인)
  • sub.example.com-> other.example.com불가능

감사! localStorage를 자세히 설명하는 추천 참조가 있습니까?
Christophe


1
글쎄, MDN 페이지를 읽은 후에도 여전히 내 질문에 대한 답을 찾을 수 없습니다 ... 어쨌든, 다시 한 번 감사드립니다!
Christophe

1
@Christophe webappsstore.sqlite쿼리를 사용하여 Firefox 프로필 디렉토리에서 호출 된 sqlite (3) 데이터베이스를 확인하여 내 진술을 확인했습니다 SELECT scope FROM webappsstore2;. 결과는 도메인의 역순이고 그 뒤에 역전되지 않은 프로토콜이 뒤 따르며 포트로 ​​충분합니다 gro.allizom.snodda.secivres.:https:443. 예 : . 보시다시피 경로에 대한 언급이 없습니다.
Rob W

document.domain언급 된 API 에 대한 문서는 다음과 같습니다 . html.spec.whatwg.org/multipage/…
mltsy

149

세션 스토리지 :

  1. 값은 저장된 창 또는 탭 동안 만 유지됩니다.

  2. 값은 값을 생성 한 창이나 탭에서만 볼 수 있습니다.

로컬 스토리지 :

  1. 값은 창 및 브라우저 수명을 유지합니다.

  2. 값은 동일한 원본에서 실행되는 모든 창 또는 탭에서 공유됩니다.

따라서이 각 키-값 쌍을 읽고 이해하면 로컬 저장소가 창이나 탭에서 값을 유지하기 때문에 각 도메인에 대해 고유합니다.


3
감사. 이 참조에 대한 링크를 공유 할 수 있습니까?
Christophe

3
위의 링크는 이제 사라졌습니다
chrisjlee

결론은 정확할 수 있지만 추론은 아닙니다. 스토리지가 페이지 단위 인 경우에도 창 / 탭에서 계속 유지 될 수 있습니다.
pyrocrasty jul.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.