2014-11-20 1 views
1

Windows에서 데이터를 공유하고 싶습니다. 데이터는 거의 항상 5MB 미만이지만 경우에 따라 7MB 이상일 수 있습니다. 이 데이터를 여러 창에서 공유하려면 데이터를 로컬 저장소에 덩어리로 작성해야하며 데이터를 수집 한 후에는 수집 할 다음 덩어리로 바꾸십시오.로컬 저장소 제한 - 내가 접근했는지 어떻게 알 수 있습니까?

내 질문입니다. 어떻게 이것을 자바 스크립트로 계산합니까? 데이터의 바이트 크기를 계산할 필요가있을뿐만 아니라 데이터의 "패킷"을 제공 할 헤드를 계산해야하므로 수신시 오른쪽 (불완전한) "패킷"에 연결할 수 있습니다. 다른 창문들. 로컬 저장소에서 어떻게 알 수 있습니까?

A. 데이터는 얼마나 있습니까?

B. 데이터가 얼마나 많은 공간을 차지합니까?

+0

http://stackoverflow.com/questions/4391575/how-to-find-the-size-of-localstorage – epascarello

+0

['postMessage()'] (https : // developer .mozilla.org/ko-US/docs/Web/API/Window.postMessage)를 사용하여 브라우저가 두 창 사이의 데이터 마샬링을 처리하고 로컬 저장소 제한에 대해 전혀 염려 할 필요가 없습니다. – jfriend00

답변

0

사양에 표준 크기가 없습니다. This StackOverflow answer은 두 개의 따옴표를 보여 주며, 기본값은 대부분의 브라우저에서 5MB, Internet Explorer에서 10MB로 표시됩니다. 두 번째 인용 부호는 각 브라우저가 사용자에게이 한도를 사용자 정의 할 수있는 기능을 제공한다는 점에서 중요합니다. 한계에 다다르면 감지 할 방법이 없습니다.

W3C specsetItem 메서드는 브라우저의 할당량을 초과하면 QuotaExceededError이됩니다.

저장되는 데이터의 크기와 관련하여 저장하는 문자열은 문자열입니다. 당신은 5MB, 또는 10MB에 도달 할 수 있지만, 엄청난 양의 데이터입니다. 원근법을 얻으려면, 5mb 크기의 텍스트 파일을보십시오. 그 문자가 localStorage을 사용하여 저장할 수있는 텍스트의 정확한 묘사는 아니지만, 여전히 방대한 양입니다. 어느 쪽이든 setItem을 사용하는 코드를 구현할 때는 예외가 던져 졌는지 확인해야합니다.

관련 문제