はここで先行入力と私のinputText制御が有効である:xPageでtypeAheadのパフォーマンスを向上させるにはどうすればよいですか?
<xp:inputText id="inputNameEditBox">
<xp:typeAhead
mode="full"
minChars="3"
ignoreCase="true"
valueList="#{javascript:return mytypeAheadList();}"
var="searchValue"
valueMarkup="true"
id="typeAhead1">
</xp:typeAhead>
</xp:inputText>
SSJS mytypeAheadList()関数は、提案のセットを取得するために、カスタムJava userTools.userLookup()
関数を呼び出します。 (当社のサーバーは社内のディレクトリにアクセスできないため、LDAP HTTP Java APIを使用する必要があります)。
SSJSライブラリ:
function mytypeAheadList(){
var v=new userTools.userLookup(); //Java library
var usrList = v.getUserList(searchValue);
var lenList = usrList.length;
var retList = "<ul>";
if(lenList>0){
for (var i=0; i<lenList; i++) {
var matchDetails:string = ["<li>",@Name("[ABBREVIATE]", @Left(usrList[i], "@")),"</li>"].join("");
retList += matchDetails;
}
} else {
retList += ["<li>","None found","</li>"].join("");
}
retList += "</ul>";
return retList;
}
だからuserTools
Javaオブジェクトは、その都度ユーザーが文字を入力作成されることを意味します。それを避ける方法はありますか?ページロード時にグローバル変数var v
を作成しますか?スコープ変数がJavaオブジェクトを受け入れることができないようです。
あなたのJavaオブジェクトは、直列化可能ですか? –
いいえ、シリアル化できません – VladP