-
PWA 개발하기 앞서 사전지식 익히기! - 2JavaScript/PWA(Progressive Webp Application) 2020. 3. 27. 18:14반응형
WORKBOX Custom Plugin
순서 requestWillFetch -> cacheWillUpdate -> cachedResponseWillBeUsed -> cacheDidUpdate
cacheWillUpdate : 응답을 사용하여 캐시를 업데이트하기 전에 호출됩니다. 캐시에 추가되기 전에 응답을 변경하거나 캐시를 전혀 업데이트하지 않도록 null을 반환 할 수 있습니다.
cacheDidUpdate : 새 항목이 캐시에 추가되거나 기존 항목이 업데이트 될 때 호출됩니다. 캐시 업데이트 후 작업을 수행하려는 경우에 유용합니다.
cacheKeyWillBeUsed : 캐시 조회 (모드가 '읽기'인 경우)와 캐시 쓰기 (모드가 '쓰기'인 경우) 모두에 대해 요청이 캐시 키로 사용되기 전에 호출됩니다. 캐시 액세스에 URL을 사용하기 전에 URL을 대체하거나 정규화해야하는 경우 유용 할 수 있습니다.
cachedResponseWillBeUsed : 사용중인 캐시에서 응답하기 전에 호출되는이 콜백을 사용하면 해당 응답을 검사하고 대신 사용할 널 또는 다른 응답을 반환 할 수 있습니다.
requestWillFetch : 네트워크 요청이 이루어질 때마다 호출됩니다. 이 콜백에서 요청을 변경할 수 있습니다.
fetchDidFail : 네트워크 요청이 실패했을 때 호출되며 대부분 네트워크 오류로 인해 발생합니다. 404 Not Found와 같은 오류 상태의 응답이 네트워크에서 반환되면 호출되지 않습니다.
fetchDidSucceed : HTTP 상태가 응답에 관계없이 네트워크 요청에 성공하면 호출됩니다.WorkBox 한글설명
https://gracefullight.dev/2017/12/22/PWA-ServiceWorker-Web-Caching/
PouchDB
- couchdb (NoSQL)의 브라우저 버전
- 오프라인 환경에서 요청시 온라인이 될 때에 couchdb와 dbsync(데이터 베이스 동기화) 이루어짐
- localforage와 사용률 비교 (https://www.npmtrends.com/dexie-vs-lawnchair-vs-localforage-vs-pouchdb)
CouchDB
CouchDB 서버는 각각 저장할 데이터의 전체 사본을 포함하는 개별 노드로 작동합니다.그런 다음 응용 프로그램 서버는 모든 CouchDB서버에서 읽고 쓸 수 있습니다. 그런 다음 변경 사항이 서버마다 비동기적으로 각 서버간에 복제됩니다.
CouchDB 클러스터를 실행하는 한 가지 방법은 쓰기를 허용하는 단일 마스터를 갖는 것입니다. 그런 다음 업데이트를 슬레이브와 nginx와 같은 HTTP 로드밸런서에 복제하여 슬레이브간에 읽기를 균등하게 분배합니다.
두가지 주요 결과가 따릅니다.
- 마스터는 읽기를 허용하는 단일 실패 지점입니다.
- 슬레이브에서 읽은 데이터는 결국 일관성이 있습니다. 마스터에서 발생하는 쓰기와 모든 슬레이브에 복제되는 쓰기 사이에 지연이 발생합니다.
또는 CouchDB 클러스터가 임의의 노드에 대한 쓰기를 수락 한 다음 각 노드간에 복제 할 수 있습니다. 이렇게하면 쓰기 가용성이 향상되지만 쓰기 충돌의 범위가 커져서 CouchDB가 감지하는데 도움이 되고
모든 데이터 사본이 동기화되는데 걸리는 시간이 늘어납니다.
_rev : 문서의 버전 정보
문서 업데이트 : 문서를 덮어쓰는게 아니라 새로운 문서가 추가된다 append only반응형'JavaScript > PWA(Progressive Webp Application)' 카테고리의 다른 글
PWA 개발하기 앞서 사전지식 익히기! - 1 (0) 2020.03.09