2012-10-18 3 views
0

현재 phonegap 및 jquerymobile이 포함 된 앱을 개발 중입니다. 앱에는 사용자에게 표시 될 많은 데이터가 포함되어 있습니다. 모든 데이터는 phonegap 저장소 구현에 저장됩니다. 데이터는 listviews, detailviews 및 필터링 된 listviews 등에서 사용자에게 표시됩니다. 지금까지 아무런 문제가 없지만 여기에 내 질문이 있습니다.Phonegap 앱 : 모든 데이터를 하나의 개체에 저장하십시오.

비동기 방식으로 인해 전화 연결 저장소에 문제가 발생합니다 관계형 데이터) 및 데이터의 대부분 (적어도 부분) 모든보기에서 사용되는 사실 나는 하나의 큰 자바 스크립트 개체에 모든 데이터를 저장하는 것에 대해 생각하므로 모든 데이터가 시작시로드되고 많은 DB 작업이 필요합니다.

개체가 최대 10 개의 2-4 차원 해시 배열을 포함한다고 생각합니다. 2000-3000 항목.

가능합니까? 아니면 앱이 너무 느려지 는가? 내가 할 수 있거나 사용해야하는 또 다른 접근 방법이 있습니까? 에릭에


답 :

는하지만 난 일을 설명해야한다는 인식 좀 더 :

객체에있을 것입니다 것은 개체 같은 많은 enitiys 하나 개의 3 배열로 구성 데이터 {name, headline, subheadline, description, creation date, update date, 작은 문자열, 작은 문자열, 작은 문자열}, 다른 모든 배열은 주로 3 개의 큰 배열에 대한 관계 식별자를 포함합니다.

이러한 배열 중 하나도 변경되거나 조작되지 않습니다. 서버와의 동기 때문에 모든 데이터가 완전히 변경 될 수 있습니다.

중요한 것은 모든 데이터가 로컬에 저장된다는 것입니다. 앱이 jquery 모바일로 실현되므로 페이지를 다시로드 할 필요가 없습니다. 다른 콘텐츠를 표시해야하는 경우 필요한 HTML이 자바 스크립트로로드됩니다. 페이지에 삽입됩니다.

여전히 좋은 생각이십니까? 그렇다면 좋은 생각이 아닙니다. 더 나은 접근 방법은 무엇입니까?

+0

잘 모르겠지만,로드 할 때 응용 프로그램의 속도가 느려질 수 있습니다. 단지 개체에 많은 공간을 할당해야하기 때문입니다. 거기에서 더 느리게/더 빠를 수는 없지만 개체를 ​​사용하는 방법에 따라 개체에 액세스/조작 할 때 개체에서 항목을 사용하는 것이 얼마나 힘들고 관여되는지 생각하십시오. 그것은 쉽지만, 예를 들어 수천 가지 항목을 "찾아야"하기 때문에 반복해야하는 경우, 집중적 일 수 있습니다. – Ian

답변

0

"항목"으로 무엇을 의미 하느냐에 따라 달라 지겠지만, 메모리에 불필요하게 큰 개체가 뒤 따르는 큰 부하 부담이 될 가능성이 있습니다. 먼저 개체를 어딘가에 문자열로 표현하는 것이 좋습니다. 그 일의 문자 수는 페이지 당 실제로로드하는 바이트 수를 나타냅니다. 변경되지 않는 일회성로드 js 파일 형식이 아니므로 브라우저가 구문 분석해야한다고 가정하기 때문에 페이지 당 실제로로드하는 바이트 수를 나타냅니다. 페이지가로드 된 후 어리석은 일.

내 본능은 이것이 아무렇게나 갈 수있는 잘못된 방법이라고 말합니다. 2D 배열을 넘어서는 필요성이있는 경우이 메가 바이트가로드 시간을 초 단위로 추가 할 수있는 메가 바이트가 될 수있는 것처럼 들리지만 더 중요한 것은 부분적으로 완화하는 작업을하려는 것처럼 들리는 것입니다 귀하의 실제 문제가 있다면, 초기 조회 만 줄이고 업데이트는하지 않아 클라이언트 측의 비동기가 정말 엉망이 될 수 있습니다. 또한 데이터가 성장할 가능성이있는 경우 현재 관리가 가능한 것처럼 보이기 때문에 향후 앱을 매우 쉽게 망칠 수 있습니다.

과도한 HTTP 요청을 피하기 위해서는 경제적 인 경우 정적 데이터를 항상 페이지에 구워 ​​두는 것이 좋습니다 (예 : 종속 사이트에서 물건을로드하기 위해 클릭하는 첫 번째 선택 상자의 내용 선택 상자). 가능한 경우 아약스 호출 결과를 캐싱하십시오.

클라이언트 측 로직의 핵심은 일관되게 관리 가능한 API를 사용하여 서버 측 데이터를 가져와 서버가 실제로 발생했음을 확인하기 전까지는 변경되거나 완료된 내용을 표시하지 않는 것입니다.

+0

안녕하세요, 에릭, 답장을 보내 주셔서 감사합니다. 제 질문을 보시기 바랍니다. – jacksbox

관련 문제