2012-11-03 3 views
1

휴대 기기 용 앱을 개발 중입니다. jquery mobile 및 phonegap을 사용하여 장치의 내부 기능에 액세스합니다. 10 개 노드 이상에 큰 xml 파일이 있습니다. 기본적으로 각 노드를 자체 페이지에 표시해야합니다. jquery mobile에서는 모든 페이지가 들어있는 하나의 html 파일을 만드는 것이 일반적입니다. 나는 이런 식으로 뭔가를 만들 생각을 가지고 노는거야jquery mobile - performance로 XML을 표시 하시겠습니까?

:

<div data-role="page" id="1">JS template filled with content of node1 from xml and linking to page 2.</div> 
<div data-role="page" id="2">JS template filled with content of node2 from xml and linking to page 3.</div> 

내가 자바 스크립트와 XML 파일을 구문 분석하는 등 큰 페이지를 만들 경우, I 앱이 엄청나게 느린 될 것이라고 걱정 . 내 경험에 의하면 브라우저가 길면 페이지를 잘 처리 할 수 ​​없습니다. xml 파일에는 텍스트와 이미지, 비디오 및 오디오 파일에 대한 링크가 포함될 수 있습니다. 클라이언트 쪽에서 xslt를 통해 xml 파일을 렌더링하려고 시도했지만 문제가 발생하여 대부분의 안드로이드 브라우저가 xsl을 지원하지 않습니다 (적어도 내 것은 아닙니다). 앱이 인터넷 연결 없이도 작동해야하기 때문에 클라이언트 측에서 해결책을 찾아야합니다.

올바른 방향으로 안내해 줄 수 있습니까? 어쩌면 내가 틀렸어. 메인 html 파일에 수백 페이지가 포함되어 있다면 큰 문제가 아닐까? 한 번에 한 페이지 이상을 표시하지 않기 때문에 xml에서 하나씩 페이지를 가져 오는 아이디어도있었습니다. 하지만 이미 사용자에게 표시 한 노드를 추적하는 방법을 모르겠습니다. xml 파일에는 자동 증가 식별자가 없습니다. 따라서 xpath를 통해 특정 노드에 액세스하는 것이 어려울 수 있습니까? 아니면 무언가를 놓치고 있습니까?

감사합니다.

답변

1

천개의 노드를 가진 XML 파일은 대부분의 사람들의 표준에 비하면 꽤 적습니다 (그리고 10 개의 노드가있는 노드는 매우 작습니다). 그래서 실제 문제가 무엇인지 알기가 어렵습니다.

일부 모바일 브라우저는 기본 XSLT를 지원하지 않지만 Javascript가 가능한 브라우저에서 실행되는 XSLT 2.0 구현을 제공하는 Saxon-CE를 사용해 볼 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. xml 파일이 크지 않다는 것을 알고 있습니다. jquery 모바일 페이지를 XML 파일로 만드는 작업은 오래 걸릴 수 있다는 점이 걱정입니다. 루핑 및 페이지 작성 프로세스에는 시간이 필요합니다. 현재 솔루션 : 1. xml 파일로드 2. 파일 을 반복합니다. 3. 간단한 JS 템플릿 엔진 을 사용하여 각 data-role = "page"를 추가하지만 너무 느립니다. 1000 페이지로 앱을로드하는 데 약 10 초가 걸립니다. html이 생성되면 앱이 정상적으로 실행됩니다. Saxon-CE가 해결책 일 수 있지만 오픈 소스 및 비용 효율적인 솔루션을 선호합니다. –

+0

예, 저는 우리 모두가 우리 소프트웨어에 대해 지불 할 다른 사람을 선호한다는 것을 이해합니다! 1000 요소를 추가하기위한 10 초는 어리석은 속도로 느껴지지만 기술에 익숙하지 않아 해결책을 제시 할 수 없습니다. –

+0

Saxon-CE를 개발 한 이래로 분노를 느낍니다. 그러나 잘못된 방식으로 사용하지 마십시오. 저는 학생이고 대학에서 프로젝트를 위해이 작업을 수행합니다. 충분한 학비를 지불하고이 작은 프로젝트를 위해 나 자신을 개발할 수 있어야합니다. 좀 더 효율적으로 사용할 수있는 뭔가가 있다면 힌트를 찾고있었습니다. 나는 또한 너를 존중하고 대답했다. 그래서 화낼 필요가 없습니다. 거대한 회사를 위해이 앱을 개발했다면 Saxon-CE를 확실히 시험해 보았습니다. 물론 당신은 이것을 알 수 없습니다. –

관련 문제