2013-08-11 2 views
0

저는 GWT 개발에 상대적으로 초보자입니다. 현재 일부 데이터 (~ 20 개 항목)와 함께 거의 200 개의 GWT ListBox를로드하는 GWT 웹 앱을 상속 받았습니다. 이 데이터를로드하는 것은 매우 느립니다. 내가 모든 데이터를로드하는 하나의 데이터 객체에 모든 ListBox를 "바인딩"할 수있는 방법이 있습니까? 에디터 프레임 워크가 나를 도울까요? 나는 UI를 재 설계하지 않기를 원하지만 필요한 경우 가질 수 있습니다.200 GWT 목록 상자를로드하는 속도가 느립니다.

감사합니다. 나는 큰 형태의 추천

+2

원하는 브라우저에서 타임 라인을보고 속도 저하가 정확히 어디에서 확인할 수 있습니까? – chrylis

+2

목록 상자에 200 개의 테마를로드 중입니다. 최종 사용자에게 처벌입니다. –

답변

0

세 가지 전략 :

1 * 사용 반응 UI를 유지하기 위해 실행을 연기.

2 * 최대한 빨리보기를 미리로드하십시오.

3 * 사용 HTML 템플릿 또는

1)

private void setListBoxValues(final Map<String, String> theValues) { 
     Scheduler.get().scheduleDeferred(new ScheduledCommand() { 
      @Override 
      public void execute() { 
       clear(); 
       for (Entry<String, String> entry : theValues.entrySet()) { 
        box.addItem(entry.getValue(), entry.getKey()); 
       } 
      } 
     }); 
    } 

2)

사용자가 할 수있는 형태로 이동하기 전에 몇 페이지를 이동하는 경우는 SafeHTML 이미 새 ...()를 사용하여보기를 만들고 실제로 표시해야하기 전에 목록 상자를로드하는 메소드를 호출하십시오. 우리의 견해 중 일부는 로그인 할 때 미리로드하기도하므로 사용자에게 표시하는 것은 '즉시'와 유사합니다.

같은 페이지에 알려지지 않은 버그가 많은 것처럼 보이는 일부 페이지/위젯은 미리로드 된보기/위젯의 스택을 만들어 요청시 내 발표자에게 전달하는 것입니다. 발표자는 즉시이를 표시 할 수 있습니다.

목록 상자의 내용이 항상 당신이 직접 HTML을 생성하고리스트 박스에 전달하는 SafeHTML에서 또는 HTML 템플릿을 사용할 수 있습니다 동일한 경우

3). 여기에 버튼 코드를 생성하는 예제와 예제가 있습니다. 퍼포먼스 향상을 위해 특별히 사용한 적은 없지만 더 빠를 것이라고 생각합니다.

관련 문제