次のコードは、XPage 上のスクリプト オブジェクトです。データベース内のすべてのフォームの配列をループし、フィールド「ACIncludeForm」を含むすべてのフォームを探します。私の方法は機能しますが、計算に 2 ~ 3 秒かかるため、XPage のロードが非常に遅くなります。私の質問は - これを達成するためのより良い方法はありますか? sessionScope 変数が null かどうかを確認するコードを追加し、必要な場合にのみ実行し、ページが 2 回目に読み込まれると 1 秒以内に読み込みます。したがって、私の方法は実際に多くのプロセッサ時間を消費します。
var forms:Array = database.getForms();
var rtn = new Array;
for (i=0 ; i<forms.length; ++i){
var thisForm:NotesForm = forms[i];
var a = thisForm.getFields().indexOf("ACIncludeForm");
if (a >= 0){
if (!thisForm.isSubForm()) {
if (thisForm.getAliases()[0] == ""){
rtn.push(thisForm.getName() + "|" + thisForm.getName() );
}else{
rtn.push(thisForm.getName() + "|" + thisForm.getAliases()[0] );
}
}
}
thisForm.recycle()
}
sessionScope.put("ssAllFormNames",rtn)