2011-02-03 11 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

uは 'Scheduler.get()scheduleEntry(新しいScheduledCommand(){...})のような意味;' それはjdoc アン "エントリ" で述べていますコマンドは、GWT生成コードがブラウザのイベントループによって呼び出される前に実行されます。このタイプのコマンドは、「何か起こったとき」を知る必要があるコードに適しています。 whatsブラウザのイベントループ –

+0

問題は、リフレッシュボタンを押したときにのみ、そのリフレッシュボタンを押したときの読み込みです。 –

+1

リフレッシュすると、EntryPointが再度読み込まれるため、onLoadModule()が再度呼び出されます。 onLoadModule()の最後で、 'Scheduler.get()。scheduleEntry(new ScheduledCommand(){...});'を呼び出します。 –

関連する問題