HTML5의 localStorage 데이터베이스는 일반적으로 크기가 제한되어 있으며 표준 크기는 도메인 당 5MB 또는 10MB입니다. 이러한 제한을 하위 도메인 (예 : example.com, hack1.example.com 및 hack2.example.com은 모두 5MB의 자체 데이터베이스가 있음)에서 우회 할 수 있습니까? 부모 도메인이 자녀 데이터베이스에 액세스 할 수 있는지 여부를 지정하는 표준이 있습니까? 나는 아무것도 찾을 수 없으며, 어느쪽으로 든 할 수있는 주장을 볼 수는 있지만 표준 모델이 있어야하는 것처럼 보인다. http://dev.w3.org/html5/webstorage/#disk-space에서하위 도메인에 대한 HTML5 localStorage 크기 제한
답변
은 기원에 5 메가 바이트
주로 임의의 제한을 권장합니다. 구현 피드백은 환영하며 향후이 제안을 업데이트하는 데 사용됩니다.
사용자 에이전트는 기원에서 다른 제휴 사이트, 예를 들어, 데이터를 저장하는 사이트로부터 보호해야합니다
는 또한 있음을 언급 a1.example.com, a2.example.com, a3.example.com 등의 한도까지 저장하여 주 example.com 저장 용량 한도를 우회합니다.
이것은 서브 도메인에 대한 질문에 실제로 대답하지 않습니다. –
@ JörnZaefferer, 스펙의 * 의도 *는 하위 도메인 사용을 막는 것입니다. –
스펙에서 경고에도 불구하고 분명히 FireFox만이 제안 된 예방을 구현했습니다. 디스크를 채우거나 브라우저를 충돌시키는 재미있는 방법을 보려면이 프로젝트를 참조하십시오. http://feross.org/fill-disk/ –
나는 "Is 5MB the de facto limit for W3C Web Storage?"이라고 물었을 때이 질문을 놓쳤지만 기본적으로 같은 대답을 얻었습니다. 더 많은 정보를 원한다면, 제 질문에 대한 브라우저의 특정 제한 사항에 링크했습니다.
여기에 덮여 바탕 화면의 많은 및 모바일 브라우저와 매우 상세한 테스트 결과는 다음과 같습니다 http://code.google.com/p/chromium/issues/detail?id=58985#c15
당신은 문자열을 기반으로 만 2.5MB하지 5메가바이트에 의존 할 수 있습니다 :이 버그 리포트를 확인 http://dev-test.nemikor.com/web-storage/support-test/
너가 저장할 수있는 길이.
Great doc! 감사! – neoswf
더 나은 솔루션은 사용하는 것입니다 [오프라인 스토리지 HTML5 색인화를.]1
그것은/c를이 오프라인위한거야 b를 잘못된 이름 것으로 보인다 기존의 웹 SQL에 대한 교체 (처럼 보이는 저장)은 다음과 같습니다. 오프라인 저장을 허용하고 여전히 지원되는 색인 된 DB :
IndexedDB는 HTML5에서 새로 추가되었습니다. 웹 데이터베이스는 사용자의 브라우저 내에 호스팅되어 유지됩니다 ( ). 개발자가 풍부한 쿼리 기능을 갖춘 응용 프로그램을 만들면 온라인으로 작업 할 수있는 새로운 유형의 웹 이 생겨날 것이며 이라는 응용 프로그램이 생성 될 것으로 예상됩니다.
더 많은 정보와에서 test-app : http://ido-green.appspot.com/WebSQL-IndexedDB-example/jqm_indexedDB.html
현재 모바일에서 IndexedDB를 지원하지 않습니다 (iOS 7에서 예정). 따라서 Web에서 IndexedDB가 모바일에서 더 잘 지원 될 때까지 WebSQL과 IndexedDB를 래핑하는 지속성 API를 만드는 것이 더 나을 수도 있습니다. http://caniuse.com/#search=indexeddb – oligofren
질문에 답할 수 없으므로 주석이어야합니다. –
사실 나는 초기 질문을하는 사람에게 최선의 조언을 제공 할 가능성이 있다고 생각합니다. 이와 별도로 구형 모바일 브라우저의 경우 WebSQL 위에 indexedDB를 구현하는 알맞은 polyfill 라이브러리가 있습니다. –
내가 프로그램 곳으로 지금 일하고 있어요
// 1. paste this line in your code
!function(){function e(t,o){return n?void(n.transaction("s").objectStore("s").get(t).onsuccess=function(e){var t=e.target.result&&e.target.result.v||null;o(t)}):void setTimeout(function(){e(t,o)},100)}var t=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;if(!t)return void console.error("indexDB not supported");var n,o={k:"",v:""},r=t.open("d2",1);r.onsuccess=function(e){n=this.result},r.onerror=function(e){console.error("indexedDB request error"),console.log(e)},r.onupgradeneeded=function(e){n=null;var t=e.target.result.createObjectStore("s",{keyPath:"k"});t.transaction.oncomplete=function(e){n=e.target.db}},window.ldb={get:e,set:function(e,t){o.k=e,o.v=t,n.transaction("s","readwrite").objectStore("s").put(o)}}}();
// 2. Setting values
ldb.set('nameGoesHere', 'value goes here');
// 3. Getting values - callback is required because the data is being retrieved asynchronously:
ldb.get('nameGoesHere', function (value) {
console.log('And the value is', value);
});
아래 저장 공간 코드를 사용 50MB의를 얻을 수 우리는 모든 텍스트를 localStorage에 완전히 저장하려고합니다. 현재 5MB 제한에 대한 정보를 발견 한 곳으로 링크를 추가 할 수 있다면 정말 좋을 것입니다. 대안을 더 잘 이해하는 데 도움이 될 것입니다. 감사합니다. – JeroenEijkhof
Webkit 기반 브라우저는 저장 용량에 UTF-16을 사용합니다. 저장 용량은 2.5MB로 제한됩니다. – rxgx
2011 년 6 월 RFC에 따르면 "사용자 에이전트는 다른 제휴 사이트를 기반으로 데이터를 저장하는 사이트를 차단해야합니다 (예 : a1.example.com, a2.example.com, a3.example.com, 주요 example.com 저장 용량 제한을 우회합니다. " 앞으로도 계속 작동하는 해킹에 기대지 마십시오. (http://dev.w3.org/html5/webstorage/) –