웹용 새로운 비동기 키 값(로컬) 저장소
6108 단어 javascriptkeyvaluehtmlwebdev
불행히도 WebStorage API에는 큰 단점이 있습니다. 데이터를 동기적으로 저장하고 검색하므로(차단).
JavaScript를 사용하여 비동기식(비차단)으로 데이터를 저장/검색할 수 있는 대안이 있습니다. 그것이 IndexedDB입니다.
IndexedDB는 비동기적이고 효율적이며 LocalStorage API를 사용하여 할 수 있는 것보다 훨씬 더 많은 것을 저장할 수 있지만 API와 구문은 사용하기가 그렇게 간단하지 않습니다. 수십 개의 콜백과 이벤트를 처리해야 합니다.
그러나 IndexedDB를 스토리지 백엔드로 사용하는 WICG(Web Incubator Community Group)에서 제안한 새롭고 간편하고 효율적인 Async Key-Value Storage(KV 스토리지) API가 있습니다. 이 사양에 대한 자세한 내용을 확인할 수 있습니다here.
새로운 KV Storage는 아래 코드 스니펫과 같이 API와 같은 간단한 LocalSorage를 구현합니다.
(async () => {
await kvStorage.set("mycat", "Tom");
console.assert(await kvStorage.get("mycat") === "Tom");
for await (const [key, value] of kvStorage.entries()) {
console.log(key, value);
}
// Logs "mycat", "Tom"
await kvStorage.delete("mycat");
console.assert(await kvStorage.get("mycat") === undefined);
})();
이 문서를 작성하는 시점에서 이 사양에 대한 작업은 현재 브라우저 팀(제안을 시작한 Chromium 프로젝트 포함)이 구현에 관심을 표시하지 않기 때문에 일시 중단되었습니다.
그러나 600바이트 미만을 차지하는 keyval store에 의해 IndexedDB로 구현된 아주 간단한 작은 약속 기반Mozilla(Js 라이브러리)이 있습니다. 또한 나무를 흔드는 친화적입니다.
import { set, get } from 'idb-keyval';
set('hello', 'world')
.then(() => console.log('It worked!'))
.catch(err => console.log('It failed!', err));
get('hello').then(val => console.log(val));
IndexedDB 및 기타 엣지 케이스의 이전 구현을 포괄하는 광범위한 지원을 원하는 경우 총 번들 크기에서 10KB 미만을 차지하는 localForage을 사용할 수 있습니다.
이 npm@ngx-pwa/local-storage을 통해 다음 각도 프로젝트에서 localForage를 사용할 수 있습니다.
kv-storage-polyfill by GoogleChromeLabs을 사용하여 이 새로운 반짝이는 KV Storage를 사용해 볼 수도 있습니다.
Reference
이 문제에 관하여(웹용 새로운 비동기 키 값(로컬) 저장소), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/shivarajnaidu/a-new-async-key-value-local-storage-for-web-jb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)