2014-10-08 3 views
19

오프라인 용도로 일반적으로 MySQL DB에있는 이미지와 텍스트를 저장하기 위해 IDB를 사용하는 오프라인 응용 프로그램을 작성했습니다.IndexedDB로 사용 가능한 저장소 검색

그러나 IndexedDB의 장치 저장소에 대한 한도를 읽을 수있는 방법을 찾으려고합니다. 현재 크롬에서만 작동하지만 다음 결정 방법을 사용 중입니다. 나는 누군가가 좋은 것 FF & IE & 더 구체적으로 사파리에 그것을 얻을 수있는 방법을 알고 있다면 그러나 기반 웹킷에 대한 storageInfo를 얻을 여기 https://stackoverflow.com/a/18350531/4121257에서 조각을 사용하고

.

내가 수집 한 것부터 IDB뿐 아니라 해당 브라우저에서 저장 한 모든 항목에 대한 사용량이 반환됩니다. 그러나, 나는 사용하고있는 할당량을 사용하고있다. 이 중 하나에서 서버에 AJAX 요청을 수행하여 저장 될 모든 파일의 예상 크기를 가져오고 충분한 저장 공간이있는 경우 해결하거나 IDB에 저장되어있는 마운트를 계산하여 충분할 경우 해결합니다 더 많이 저장하십시오.

누군가가 좀 더 '간소화 된'접근 방식을 가지고 있는지 궁금합니다. FF/IE 및 특히 Safari &의 재 할당 쿼터를 확인하는 방법으로도 IDB의 할당량을 구체적으로 확인할 수 있습니다.

+0

참조 [브라우저 저장소 제한 및 퇴거 기준 (HTTPS에 추가되었습니다. org/ko-kor/docs/Web/API/IndexedDB_API/Browser_storage_limits_and_eviction_criteria) – guest271314

+0

이 질문은 약간 혼동 스럽습니다. 현재 접근 방식은 WebKit 기반 브라우저에서만 작동하며 Safari에서 작동하도록하는 방법을 묻습니다. 그러나 Safari *는 * WebKit 기반입니다! –

답변

8

크롬에서만 현재 사용할 수있는 유일한 API는 navigator.webkitTemporaryStorage.queryUsageAndQuota()입니다.

Firefox had plans도이 API를 구현합니다.

크롬을 --enable-experimental-web-platform-features으로 실행하면 navigator.storageQuota.queryInfo(type)navigator.storage.estimate()의 두 가지 실험용 API가 제공됩니다. 자세한 내용은 여기를 참조하십시오 : https://groups.google.com/a/chromium.org/forum/#!searchin/blink-dev/quota-api/blink-dev/P6eY26vB91c/Ri4ohXOPBQAJ

나는 Storage quota estimate() API이 가장 흥미로운 도구라고 생각합니다. 아직 초안이지만 및 mozilla이 현재이 API를 구현하고 있습니다.

현재 Edge과 Safari가이 API를 구현할 경우 공개 정보가 제공되지 않습니다.

Edge는 현재 전체 원점 제한 대신 할당량에 대해 매우 다른 모델을 가지고 있으며 각 저장 유형 (색인 된 db, 로컬 저장소 등)에는 자체 제한이 있습니다.

업데이트 : //developer.mozilla :이 기능은 크롬 52 (실험 플래그)과 (야간) 파이어 폭스 (51) navigator.storage.estimate().then((data)=>console.log(data)) // Object { quota: 2147483648, usage: 0 }

+0

현재 ['navigator.storage'] (https://developer.mozilla.org/en-US/docs/Web/API/NavigatorStorage/storage)에 대한 Firefox 지원은'dom.storageManager.enabled'에 의해 비활성화됩니다. 야간 버전. [Nightly 55는 https 만 만들 수도 있습니다.] (https://bugzilla.mozilla.org/show_bug.cgi?id=1268804). –

관련 문제