응용
I 시스템의 사용자가 오프라인 문서를 작성해야하기 때문에 현재 오프라인 기능을 AppCache을 사용하는 웹 응용 프로그램이 설치된 클라이언트 서버 데이터 동기화 기능을 향상시킬 수 있습니다. 문서는 처음에 오프라인으로 만들어지며 인터넷에 액세스 할 수있는 경우 사용자는 "동기화"를 클릭하여 문서를 서버로 보내 개정으로 저장할 수 있습니다. 더 구체적으로 말하면 앱은 변경 델타를 수정 된 정확한 필드로 저장하지 않고 전체 문서 전체를 저장합니다. 즉, "스냅 샷"문서가 저장됩니다.델타
문제
사용자는 다른 브라우저 및 장치에서 로그인하여 해당 문서에서 작업 할 수 있습니다. 그들이 "동기화"를 클릭하면 서버의 문서가 더 새로운 경우 클라이언트 버전 전체가 서버에 의해 무시됩니다. 이것은 아래 이미지에 묘사 된 하나의 주요 문제로 이어진다.
시나리오는 위 때문에 델타 (작은 변화) 오히려 스냅 샷 개정에 의존에 의존하지 않는 현재 구현 발생합니다.
몇 가지 질문
1) 내 연구 내가 델타 표현 될 수있는 "동기화"메커니즘 (독립적으로 적용 할 수있는 작은 변화를) 업그레이드해야 함을 나타냅니다. 이것은 건전한 접근입니까?
2) 각 델타를 독립적으로 적용해야합니까?
2) 내 연구에 따르면 개정 델타에는 시간 소인이 아닌 숫자 값이 있습니다. 이것에 대한 가치는 정확히 무엇이되어야 하는가? 수정 번호가 무엇인지에 대해 서버와 클라이언트 모두 동의하는지 어떻게 확인합니까?
스택 정보가
- 색인화 된 로컬 문서를 저장하는 프론트 엔드 (오프라인 모드)에 각도 백엔드에서 JSONB와
- 포스트 그레스 DB
관련 : http://stackoverflow.com/questions/28797992/best-practices-in-syncing-data –
힘내 이미 사용자 문서의 차이를 보여주기 위해 사용 어쩌면 어떻게 든이 일을. –
Jack Wade의 답변은 모든 것을 요약 해줍니다. diff 도구/스크립트를 사용하면 델타를 얻을 수 있습니다. 대부분 델타가 충돌하지 않아야하며 (예 : 동일한 행이 편집 됨) 충돌을 해결할 수있는 최선의 방법을 찾아야합니다 (예 : 우리, 자신, 수동 병합 , 최신 승리 등). –