2011-02-03 2 views
2

모듈이로드 된 직후 함수를 호출해야합니다. onModuleLoad()가 실행 된 직후와 같습니다. 타이머 나 scheduleDeferred 또는 다른 무엇입니까?모듈을로드 한 직후에 gwt 함수를 실행해야합니다.

 
something like 

Scheduler.get().scheduleDeferred(new ScheduledCommand() { 

      @Override 
      public void execute() { 
       Window.alert("bon jour! amis."); 

      } 
     }); 
  
or 
... 
... 

timer.schedule(2000); 
 
or 
?? 
+1

"모듈을로드 한 직후"의 의미는 무엇입니까? 보기가 완전히 초기화되고 렌더링 될 때입니까? 부하에서 실행 된 모든 비동기 서비스가 끝난 후입니까? 당분간 : 타이머가 아닌 스케줄러를 사용하십시오. – Naoj

+0

예,보기가 완전히 초기화되고 렌더링 된 직후입니다. 그러나 스케줄러가로드 된보기 및 HTML 응답을하지 않는 동안 다른 내용 (위젯)을로드하는 중 –

+1

문서에 따르면 브라우저 이벤트 루프가 반환 된 후 지연된 명령이 실행됩니다 . 위젯이 ScheduledCommand를 사용하거나 비동기 적으로 컨텐츠를로드하지 않는 한 ScheduledCommand는 응답하지 않습니다. – Naoj

답변

2

EntryPoint 구현시 Scheduler.scheduleEntry을 사용하십시오. 추가 작업 (GWT 처리가 아닌) 스타일 시트를 삽입하려면이 작업을 수행해야하며 뷰 렌더 후에이 작업이 수행되도록해야합니다.

+0

덕분에 유 'Scheduler.get() 경우 ScheduleEntry 같은 의미 (새 ScheduledCommand() {...});' 는 jdoc 에 "항목"에 말한다 명령은 GWT 생성 코드가 브라우저의 이벤트 루프에 의해 호출되기 전에 실행됩니다. 이 유형의 명령은 "무언가가 일어날 때"를 알아야하는 코드에 적합합니다. whats 브라우저 이벤트 루프 –

+0

문제는 새로 고침 버튼을 눌렀을 때만 새로 고침 버튼을 눌렀을 때와 같은 문제입니다. –

+1

새로 고침을하면 EntryPoint가 다시로드되므로 onLoadModule()이 다시 호출됩니다. onLoadModule()의 끝에서'Scheduler.get(). scheduleEntry (new ScheduledCommand() {...});'를 호출하십시오. –

관련 문제