2011-03-02 6 views
0

아키텍처 유형 질문이 있습니다. 나는 타임 엔트리 아이폰 앱을 만들고있다. 나는 데이터를 입력하기위한 탭 하나와 주별 및 월별 요약 데이터를 보여주는 또 다른 탭이있다. 웹 배경에서 왔기 때문에 데이터가 필요할 때마다 서버에 다시 요청하는 경향이 있습니다. 아이폰에 익숙하지 않다면 요약 탭을 클릭 할 때마다 (viewWillAppear를 통해) 요약 데이터를 요청하는 것이 좋은지 잘 모르겠다. 요약 데이터는 JSON이므로 상당히 가볍습니다. 요약 데이터는 정적이 아니며 사용자가 데이터를 입력 할 때 변경됩니다. 그렇다면 데이터를 검색해야 할 때 가장 좋은 방법은 무엇입니까? 데이터를 검색 할 때를 알 수있는 더 좋은 방법이 있습니까?요약 페이지의 json 데이터를 가져 오기위한 iphone 모범 사례

답변

3

나는 좋은 생각이라고 생각하지 않습니다. 적어도 네트워크에 연결되어 있지 않아도 사용자가 항목에 액세스 할 수 있도록 데이터를 캐시해야합니다.

데이터 구조를 핵심 데이터 모델로 미러링하고 적절한 시간에 서버를 호출하여 업데이트 할 수 있습니다. 서버 측을 구현하는 경우 서버가 변경되거나 아직 다운로드되지 않은 항목 만 보낼 수 있도록 요청을 모델링합니다.

편집 : 좋은 이유없이 데이터가 가벼운 경우에도, 당신은 지속적으로 생산하고 교통 :

이 더 설명하기. 어떤 사람들은 트래픽이 아닌 시간별로 트래픽을 측정하는 앱을 사용하며, 앱을 사용할 때마다 문자 그대로 지불합니다.

+0

모바일 데이터 연결을 사용하는 경우 대기 시간이 가장 큰 비용 일 수 있으므로 반환되는 패킷이 작다는 사실은 실제로별로 이점이 아닙니다. 그래서, 예, 적어도 로컬 캐시가 최선의 방법이라고 Toastor는 동의합니다. 피드백에 대해 – Tommy

+0

주셔서 감사합니다. 이것은 저에게 많은 것을 생각하게 해줍니다. –

+0

이것을 생각한 후에 "요약"JSON 데이터 결과를 파일에 저장 한 다음 데이터가 변경 될 때마다 "요약"파일을 다시 작성하는 것이 적절합니까? 시간이 제출 될 때마다 요약 데이터를 가져 오는 비동기 호출을 가질 수 있습니다. 요약 탭을 클릭하면 요약 파일의 내용이로드됩니다. 그렇지 않으면 요약 파일을 가져 와서 요약 파일을 만듭니다. –

0

아직 읽어 보지 않은 경우 ASIHTTPRequest 프레임 워크를 확인하십시오. 대기열 요청을 지원합니다 (NSOperationQueue 또는 ASINetworkQueue). 일부 요청을 대기열에 넣은 다음 NSTimer 콜백에서 [queue go]과 같이 호출 할 수 있습니다.

네트워크가 활성화되었을 때 (네트워크 표시기) 반영하는 방식으로 UI를 구현하고 새 json 데이터를 사용할 수있을 때 UI 요소를 비동기 적으로 업데이트하십시오.

또한 캐시를 사용하여 토스터 (약 ASIDownloadCache 등에 대해 읽음)을 사용해보십시오.

관련 문제