ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • PWA 개발하기 앞서 사전지식 익히기! - 2
    JavaScript/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/

     

    PWA - 서비스 워커 웹 캐싱 (Web Caching)

    개요Progressive Web App의 시대가 왔다.Client단에서 모든 static 파일을 브라우저에 캐시를 할 수 있고 웹을 앱처럼 오프라인에서 작업하게 할 수 있다.그 첫번째로 캐싱에 대해 알아보자. 준비Promise, Fetch, Worker 및 Javascript 의 실행 구조, DOM 에 대한 사전지식이 필히 있어야 한다.HTTP Cache

    gracefullight.dev

     

    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

Designed by Tistory.