2011-01-08 3 views
1

웹 애플리케이션이 이미 준비되어 있으며 iPhone 앱에서 작업하고 있습니다. 나는이 두 가지 사이에 데이터 캐싱/동기화에 대한 근본적인 질문을 가지고있다.iphone 앱으로 웹 앱에서 데이터 동기화 또는 캐시

아마도 iPhone 앱의 80 %가 webapp에서 데이터를 더 많이 읽거나 가져 오는 것입니다. 통계에는 너무 무거워서 통계 등에 액세스 할 수 있습니다. 화면이로드 될 때마다이 데이터를 다시로드해야합니까? 그렇다면 동기화/캐싱은 매번 "신선함"이 필요하기 때문에 필요하지 않습니다. 그러나 종종 데이터가 변경되지 않았기 때문에 대부분의 경우 아무 이유없이 웹 서버에 불필요한 요청을 보냈을 것 같습니다.

나는이 데이터를 어떻게 든 로컬로 캐싱 할 생각 이었지만, "모범 사례"가 무엇인지 모릅니다. 아니면 iPhone의 sqlite DB를 웹 앱의 데이터와 동기화하고 탐색 컨트롤러 제목 표시 줄에 "새로 고침"버튼을 제공하여 수동으로 업데이트를 요청해야합니다.

필자는 반드시 코드를 찾고있는 것이 아니며 계획을 더 많이 또는 덜 혼동하고 있습니다.

제안 사항? 감사!

답변

0

웹 서버의 데이터 업데이트 빈도에 달려 있습니다. 드물게 업데이 트되는 경우, 나는 아이폰에 데이터를 캐싱을 제안합니다. 그러나 웹 서버에 갑작스런 활동이 있고 최신 정보에 액세스하는 것이 프로젝트 성공에 중요하다고 생각되면 GET 요청을 보내야합니다.

iPhone이 Comet을 활용할 수 있는지는 잘 모르겠지만 지원되는 경우 휴대 전화로 업데이트를 "푸시"하는 옵션 일 수 있습니다.

전화로 주기적으로 서버에서 업데이트를 확인할 수도 있습니다. 데이터가 변경되지 않은 경우 서버는 상태 코드 304 Not Modified를 반환 할 수 있습니다. 이는 각 GET 요청에서 실제 데이터를 가져 오는 것보다 데이터 집약적입니다. 이 경우 304가 반환되지 않으면 새 데이터 만 가져옵니다.

+0

쿨, 고마워. 아니요, 데이터가 자주 변경되지 않으므로 캐싱에 좋은 사례라고 생각합니다. 무엇인가 "캐시"하는 가장 좋은 방법은 무엇입니까? 스틱 sqlite DB에 데이터 또는 거기에 더 좋은 방법은 무엇입니까? – rpheath

+0

@rpheath - 나는 그 대답을 모른다. 가장 좋은 방법을 결정하기 위해 다른 앱을 예로 들어 보겠습니다. 때로는 플랫폼 개발자가 공통적 인 문제를 처리하는 최선의 방법이라고 생각하는 것을 보여주는 목적이있는 데모를 찾을 수 있습니다. – jmort253

관련 문제