XPageでページのイベントを見ると以下の5つのメソッドが用意されている。
- beforePageLoad( )
- afterPageLoad( )
- afterRestoreView( )
- beforeRenderResponse( )
- afterRenderResponse( )
順番その1:画面が表示されるとき。
これの順番は、画面が表示されるときに 1 → 2 → 4 → 5 の順に呼び出されていく。注意点として1のイベント内では、まだページが読み込まれていないので、コンポーネントの値を取得しようとしても無理。
順番その2:イベントとかあったとき
これの順番は、ボタンのイベント、XPage上のビュー(一覧)の次のページリンクなどを押下されたときのように、ページがリフレッシュするようなケースに 3 → 4 → 5 の順でよびだされる。
こちらも参考に。(ページにコンポーネントが貼られている場合の順番)
So what exactly does this mean?
http://www.bleedyellow.com/blogs/dotdomino/entry/xpage_cheat_sheet_1_the_page_lifecycle5?lang=ja
- PageLoad events are a good place to place code you only wish to execute the very first time the page is created.
- afterRestoreView events seem to be the best place for code that you wish to execute each time a refresh occurs.
- Events on a page/control will execute after the afterRestoreView events have fired so they will have access to any + variables/object you create in these events.
- To have code execute every time the page is processed you probably need to place it in a PageLoad and an afterRestoreView event
- Wen placing code in a control's afterPageLoad event don't assume the beforePageLoad events of the other controls have fired or that the page's afterPageLoad has fired.