2013年10月25日金曜日

連載:ちょっとディープなXPages コラム1

みなさん!XPages開発していますか!?
前回の予告でJavaScriptのパターンをいくつか紹介します、と書いていましたがJavaScriptをちょっとおやすみして、XPagesの小ネタをはさもうと思います。

renderedとloadedの違い

配置したコントロールを表示/非表示するときに、renderedのプロパティを使用するかと思います。
renderedに聞き覚えのない方は、下記のチェックボックスと言えばわかるでしょうか?
イメージ
このチェックボックスをoffにすると、「すべてのプロパティ」でrenderedの値が"false"になっているのが確認できると思います。
一方で同じ「すべてのプロパティ」にはloadedというものが有り、これを"false"に設定すると同じように表示されなくなります。
では、これらの違いはどこにあるのでしょうか?
実は、画面にあるコントロールは、renderedの値にかかわらず、サーバーのメモリに展開されますが、loadedを"false"とするとメモリ上にも展開されなくなります。
つまり実行時にコントロールが存在しない扱いになるわけです。
もちろん、メモリ上に展開しない分だけサーバーの負荷は減るわけで、パフォーマンスにも影響します。
じゃあ、loadedだけを使えばいいのかというとそういうわけではありません。メモリ上に展開しないということは、ボタンなどのイベント処理でアクセス出来ない-再表示させたりできなくなることになります。
なので、loadedの式は"動的な計算"は使えず"ページの読み込み時に計算"しか選択できないようになっています。

まとめ

画面内のボタン等で表示を切り替えたい場合は、renderedで、ページの読み込み時に表示/非表示が決定して、ページを離れるまで変更ない場合は、loadedで設定しましょう。

次はJavaScriptに戻ります

次はちょっと組立を変えて、JavaScriptのオブジェクト・リテラルについてお話します。
海老原 賢次(EBIHARA Kenji)
リコーITソリューションズ株式会社(RICOH IT SOLUTIONS CO.,LTD.)
鹿児島ソリューション部(Kagoshima Department)

0 件のコメント:

コメントを投稿