2009-12-20 5 views
1

GWT 애플리케이션을 개발하고 싶습니다. 응용 프로그램은 8 개의 모듈을 포함하며 모든 모듈은 단일 페이지에서 실행됩니다.GWT 지연로드

맨 위에 7 개의 옵션에 대한 링크가 있습니다.

페이지가로드되면 홈 콘텐츠 만로드하고 표시하기를 원합니다.

사용자가 메뉴 옵션을 클릭 할 때만 메뉴 내용이로드되어야합니다.

누구나 이것을 달성 할 수있는 가장 좋은 방법을 제안 할 수 있습니까?

+0

아직 답을 찾지 못했다면 문제에보다 구체적으로 도움이 될 수 있습니다. 그렇지 않으면 질문에 답변으로 표시하십시오. –

답변

0

AFAIK, 지연로드 (또는 플러그 가능) 모듈은 GWT에서 수행 할 수 없습니다. 부분적으로 이것은 GWT 컴파일러가 작동하는 방식 때문입니다 - 가능한 모든 코드를 가져 와서 최적화하고 가능한 한 악의적으로 잘라냅니다 (결과 JS 파일을 가능한 작게 만들기 위해). . 만약 모든 소스 코드에 접근 할 수 없다면 플러그 형 모듈을 깨뜨릴 수있는 최적화가 이루어질 수 있습니다 (특히 "코어"응용 프로그램에서 느린로드 모듈이 제대로 작동해야하는 클래스를 참조 할 수 없기 때문에 - GWT 컴파일러는 핵심 모듈의 "사용되지 않는"클래스를 제거합니다).

이 스택 오버 플로우 question from May 09은 똑같은 질문을하고 같은 대답을합니다. 수행 할 수 없습니다.

나는 약 6 개월 전이 문제에 대한 답변을 찾기 위해 고난이도와 저질을 조사했습니다. 왜냐하면 저는 당신이 요구하는 것을 정말로하고 싶었 기 때문입니다. 솔루션을 찾지 못했습니다.

- 먼저 당신이 각 모듈에 대해 가지고있는 별도의 진입 점을 제거 할 수 있습니다 ... 이것은 GWT 2.0에서 해결 된

+0

GWT에서이 문제를 해결했습니다. – Carnell

6

(내가 GWT 2.0을 사용하지 않은는이 문제를 해결했을 수도) - 이후 그들은 모두 같은 페이지에 있으므로 페이지 당 하나의 진입 점만 있으면됩니다.

그런 다음 분할 될 수있는 각 지점에서 GWT.runAsync() 메서드를 사용할 수 있습니다. 코드를 자동으로 코드를 필요에 따라 다운로드하여 청크로 잘라냅니다.

문서의 경우 here입니다.

+0

컴파일 측면에서는 어떨까요? "플러그인"모듈을 변경할 때마다 모든 것을 컴파일해야합니까? 코드 분할 가이드는이 점에 관해 특히 명확하지 않았습니다. – Ash

+0

GWT 2.0에는 그 두통을 제거하는 (또는 완전히 숨기는) 매우 흥미로운 개발 모드가 함께 제공됩니다. 앱을 실행하고 브라우저 플러그인을 설치하고 변경하고 새로 고침을 실행합니다. 그게 전부 야 - http://code.google.com/webtoolkit/doc/latest/ReleaseNotes.html#NewFeaturesDevMode –

0

답장을 보내 주셔서 감사합니다. Javascript 코드 전체가 다운로드되는 것이 옳습니다.

하지만 모듈에 대한 의견은 View Profile입니다. 사용자가 프로필보기 링크를 클릭 할 때만 내 프로필을 표시하는 것과 관련된 위젯을 만들어야합니다. 이것은 불가능합니다.

+0

매우 쉽다 ... 나는 문서 위에 링크를 달았다. 이 주제에 대한 Google I/O 회담도 많이 있습니다. –