서비스 워커의 스토리지 한도는 얼마인가요?
대부분의 브라우저는 도메인 당 5MB의 스토리지 제한으로 localStorage를 제공합니다. 서비스 워커와 관련하여 그러한 메모리 제한 / 제한이 있습니까?
나는 웹 워커 (서비스 워커의 기반이되는)에게는 그러한 제한이 없다는 것을 알고 있습니다. 그러나 웹 워커는 자산 캐싱에 정확히 사용되는 것이 아니라 처리에 더 많이 사용됩니다 (따라서 CPU가 주요 관심사입니다).
메모리 크기에 제한이 없다면 잘못 설계된 웹 사이트가 브라우저를 충돌시킬 수 있습니까?
업데이트 2018 년 1 월 15 일
Storage API 의 StorageManager 인터페이스는 모든 스토리지 관련 API 쿼리의 표준이되고 있습니다. @ miguel-lattuada 에서 언급했듯이 추정 API 는 웹 앱에서 사용 가능한 스토리지에 사용 된 스토리지의 추정치를 제공합니다. 또한 오류 시나리오를 처리하는 데 도움이되는 QuotaExceededError 예외에 유의하십시오 .
예 : 코드 :
if ('storage' in navigator && 'estimate' in navigator.storage) {
navigator.storage.estimate().then(({usage, quota}) => {
console.log(`Using ${usage} out of ${quota} bytes.`);
}).catch(error => {
console.error('Loading storage estimate failed:');
console.log(error.stack);
});
} else {
console.error('navigator.storage.estimate API unavailable.');
}
자세한 내용은 다음 2 개의 유용한 문서를 참조하세요.
2017 년 3 월 16 일 (참조 / 기록 용으로 만 보관)
최근에이 기사를 보았습니다 : 오프라인 요리 책 은 아래와 같습니다.
귀하의 기원은 여유 공간이 어느 정도의 주어 가 함께 원하는 것을 할 수 있습니다. 이 여유 공간은 모든 원본 스토리지 ( LocalStorage, IndexedDB, Filesystem 및 물론 캐시) 간에 공유 됩니다.
당신이 얻을 금액은 spec'd되지 , 그것은 장치 및 보관 조건에 따라 달라집니다. 다음을 통해 얼마를 얻었는지 확인할 수 있습니다.
navigator.storageQuota.queryInfo("temporary").then(function(info) {
console.log(info.quota);
// Result: <quota in bytes>
console.log(info.usage);
// Result: <used data in bytes>
});
위의 코드 는 모든 브라우저에서 작동하지 않을 수 있습니다 . (예 : chrome <48에서는 webkitPersistentStorage 등을 찾아야 할 수 있습니다.)
기타 유용한 정보 / 자원
Addy Osmani의 프로그레시브 웹 앱용 오프라인 스토리지에 따라
In
Chrome and Opera
: 저장 용량은 API가 아닌 출처를 기준으로합니다. 두 저장 메커니즘 모두 브라우저 할당량에 도달 할 때까지 데이터를 저장합니다. 앱은 위에서 설명한대로 Quota Management API를 사용하여 사용중인 할당량을 확인할 수 있습니다.Firefox
제한은 없지만 50MB 데이터가 저장되면 메시지가 표시됩니다.Mobile Safari
최대 50MBDesktop Safari
무제한 (5MB 이후 프롬프트)IE10+
최대 250MB 및 프롬프트 10MBEiji Kitamura의 모바일 브라우저에서 할당량 작업 에 대한 자세한 가이드입니다 .
지금은 내 문제에 대해 가장 관련성이 높은 기사 / 솔루션을 찾았습니다. 더 나은 기사 또는 사양을 아는 사람이 있으면 공유하십시오.
명시적인 제한이 없습니다. 모든 최신 브라우저는 다중 프로세스 또는 유사하므로 잘못 설계된 페이지 (또는 SW)는 크래시 자체보다 더 나쁜 일을하지 않습니다.
SW 사양은 브라우저가 어떤 이유로 든 언제든지 SW를 종료하고 다시 시작할 수 있다는 점에 대해 매우 명시 적입니다. (페이지에 DevTools가 열려있는 경우 Chrome은 사용자가 모범 사례를 채택하도록 장려하기 위해 의도적으로 페이지의 SW를 지속적으로 종료합니다.)
최신 브라우저 에서는 브라우저 스토리지에 대한 새로운 표준을 구현 한 StorageManager 를 사용할 수 있습니다 . 이 mozilla 기사를 살펴보십시오 .
let _storageStats = await navigator.storage.estimate();
console.log(_storageStats);
/*
Will prompt something like this
{quota: 15946471833, usage: 682}
Which is a representation of quota/usage in bytes
As you can see I get an insane quota of almost 16 GB
*/
에 대한 자세한 정보 navigator.storage.estimate()
및 navigator.webkitTemporaryStorage.queryUsageAndQuota()
여기 https://developers.google.com/web/updates/2017/08/estimating-available-storage-space
테스트 페이지는 여기 https://thimbleprojects.org/startpolymer/361372/입니다.
100 % 확신 할 수는 없지만 클라이언트 컴퓨터에서 사용할 수있는 기능에 완전히 제한되어 있다고 생각합니다. 에서와 같이 고정 된 상한이 없습니다.
If someone was running a beast of a machine and the browser was the only active application, then you'd most likely have plenty of storage available
However, if it was an old limited machine that's barely chugging along; you'd have very little
It depends entirely on what you're trying to do really. You should only really be using service workers to store things vital to your page/application working
참고URL : https://stackoverflow.com/questions/35242869/what-is-the-storage-limit-for-a-service-worker
'IT박스' 카테고리의 다른 글
특정 데이터베이스에 대해 마지막으로 실행 된 쿼리 (0) | 2020.11.21 |
---|---|
HDF5-동시성, 압축 및 I / O 성능 (0) | 2020.11.21 |
github에서 13 일 전에 UserB와 커밋 된 UserA는 무엇을 의미합니까? (0) | 2020.11.21 |
어떤 cygwin 미러 사이트가 완성 되었습니까? (0) | 2020.11.21 |
JAXB : 맵을 마샬링하는 방법 (0) | 2020.11.21 |