[]
원격 테이블은 두 가지 동기화 모드를 지원합니다.
단일 동기화 모드
일괄 동기화 모드
동기화 모드는 다음을 결정합니다.
변경 사항이 서버로 전송되는 시점
요청 구조 방식
변경 사항이 트랜잭션 방식으로 처리되는지 여부
모드는 테이블 생성 시 구성됩니다.
단일 동기화 모드에서는 각 데이터 변경이 즉시 원격 요청을 발생시킵니다.
다음을 설정하여 활성화합니다.
autoSync: true예제:
const dataManager = spread.dataManager();
const orders = dataManager.addTable("orders", {
remote: {
read: { url: "http://localhost:3000/api/orders", method: "GET" },
create: { url: "http://localhost:3000/api/orders", method: "POST" },
update: { url: "http://localhost:3000/api/orders", method: "PUT" },
delete: { url: "http://localhost:3000/api/orders", method: "DELETE" }
},
autoSync: true
});
orders.fetch();동작 방식:
Insert → create 전송
Update → update 전송
Delete → delete 전송
각 작업은 개별 요청을 전송
수동 제출 불필요
다음과 같은 경우 단일 동기화 모드를 사용합니다.
즉시 저장이 필요한 경우
각 작업이 독립적인 경우
일괄 처리보다 단순성이 중요한 경우
일괄 모드에서는 변경 사항이 명시적으로 제출될 때까지 로컬에 저장됩니다.
다음을 설정하여 활성화합니다.
batch: true예제:
const orders = dataManager.addTable("orders", {
remote: {
read: { url: "http://localhost:3000/api/orders", method: "GET" },
batch: { url: "http://localhost:3000/api/orders/batch", method: "POST" }
},
batch: true
});
orders.fetch();동작 방식:
Insert/update/delete 작업은 로컬에 캐시됨
즉시 네트워크 요청을 전송하지 않음
모든 변경 사항을 함께 제출
변경 사항 전송:
orders.submitChanges();변경 사항 취소:
orders.cancelChanges();기능 | 단일 동기화 | 일괄 동기화 |
|---|---|---|
네트워크 호출 | 작업별 | 단일 요청 |
수동 제출 | 필요 없음 | 필요 |
트랜잭션 유사 동작 | 아니요 | 예 |
실패 처리 | 작업별 | 전체 일괄 처리 |
다음과 같은 경우 일괄 모드가 적합합니다.
여러 변경 사항이 함께 성공하거나 실패해야 하는 경우
네트워크 트래픽을 최소화해야 하는 경우
서버 측 트랜잭션 처리가 구현된 경우
단일 동기화 모드:
사용자가 데이터를 수정
원격 요청 즉시 전송
서버 응답이 테이블 상태 업데이트
일괄 동기화 모드:
사용자가 데이터를 수정
변경 사항이 로컬에 저장
submitChanges()가 모든 변경 사항 전송
서버가 집계된 결과 반환
테이블 상태 최종 확정
read는 항상 정의되어야 합니다.
단일 동기화 모드는 create, update, delete를 필요로 합니다.
일괄 모드는 batch를 필요로 합니다.
하나의 모드만 활성화해야 합니다.
모든 테이블은 편집 전에 fetch()를 호출해야 합니다.