0

依存するコンボ ボックスがある xpage があります。最初のコンボボックスを選択すると、膨大な数のキーワード (ビューから見上げると約 10K) が入力されている 2 番目のコンボボックスが部分的に更新されます。このアクションには時間がかかるため、 を使用することにしましたXSP.submitlatency

そこで、scriptblock を作成し、次のコードを追加しました。

XSP.addOnLoad(function() { //increase Ajax request timeout to 35 seconds XSP.submitLatency = 35 * 1000; });

これはうまくいきましたが、他のすべての部分的な更新には 15 秒かかります。

次にsubmitlatency=15000、addOnLoad() で使用する代わりに、最初のコンボボックスで使用してみました。submitlatency=2000上記に加えて、他の部分的な更新をクリックするときに使用しました。しかし、期待される結果を見つけることができませんでした。ページの通常の動作がなくなり、他の部分的な更新が機能していないようです。

助けてください !または、応答時間を向上させるために、この問題に対処するためのより良い代替案があるかどうかを提案してください。

4

5 に答える 5

5

10,000 のエントリを含むコンボ ボックスは、UX の惨事の発生を待っています。Dojo グリッドをローカル データ ソースまたはその他のより大きなメカニズムと共に使用します。ローカル ストレージはあなたの味方です

于 2013-06-27T12:14:27.830 に答える
0

8.5.2 より前submitLatencyは、デフォルトの 6 秒に設定されていました。8.5.2 以降のデフォルトは 20 秒です。変更XSP.submitLatencyすると、すべてが変更されます。これはタイムアウトでもあるため、他の呼び出しが最初から遅かった場合を除き、送信に時​​間がかかることはありません。

「asp.ajax.renderwholetree」を変更してみて、それが役立つかどうかを確認できます。それに対するコメントはこちら。

# This property defines if the JSF tree should be
# completely processed during the render phase,
# including the components that are not rendered. When set to false
# it gives better performance but with potential side effects
# if some components are changing data during the render phase 
# (which # should be avoided anyway)
#xsp.ajax.renderwholetree=true

trueこの値は、8.5.2 以降ではデフォルトです。

それ以外では、 XPages Toolboxを使用してアプリケーションをデバッグすることをお勧めします。トレーニング資料はXPages Masterclassに含まれています。

于 2013-06-27T06:01:31.013 に答える
0

これに対処する最善の方法は、ロード画面/スタンバイ ダイアログを使用することです。これにより、部分的な更新中にユーザーが他のボタン/リンク/その他のものをクリックするのを防ぎ、何かが起こったことをユーザーに通知します。これにより、ユーザー エクスペリエンスが向上します。

解決策については、http: //openntf.org/XSnippets.nsf/snippet.xsp?id=standby-dialog-custom-controlを参照してください。

ところで。コンボボックスに 10,000 個のキーワード? ユーザーとして、私は開発者を撃ちます;-)

于 2013-06-27T06:20:17.900 に答える
0

ユーザーに最大 10,000 のキーワードを提供することは、望ましくありません。特にコンボボックス内ではありません。それらは、そのような大量のデータ用に設計されていません。最初のコンボボックスが、ユーザーが必要なものを選択できるデータ テーブル コントロールを更新するようにデザインを変更できませんか? データテーブルでは、ページャーともちろんいくつかのフィルターを追加できます。データタブの詳細はこちら

于 2013-07-01T14:32:59.517 に答える