RemoteCommand 呼び出し Bean メソッドのタイム ラグにパフォーマンス上の問題があります。
xhtml ページである primefaces 4.0 を使用すると、実行時に大量の div がパネルに読み込まれます
<p:outputPanel id="runtime_panel" autoUpdate="true" />
一部の SelectOneRadio コントロールには、setOnchange() メソッドによるリスナーがあります。これらは、設計時に xhtml ページで定義されている RemoteCommand を呼び出します。
<p:remoteCommand name="ourRemoteCommand"
actionListener="#{bean.someMethod}" update="runtime_panel"
/>
bean.someMethod の目的は、ajax を介してページ内の特定の GUI コントロールを表示または非表示にすることです。Bean はリクエストスコープです。
問題は、クライアントからbean.someMethodを呼び出すときに、一定のタイムラグが発生したことです。私のテストでは、javascript は突然応答しますが、サーバー側のブレークポイントを介してbean.someMethodをキャッチすると、かなり長い遅延が発生します (約 2.5 秒)。
また、bean スコープをセッション スコープに変更して、構築フェーズのラグをなくしましたが、この継ぎ目は問題ではありません。時間のラグは解決しませんでした。
「 runtime_panel 」に少量の要素しかない場合、遅延に気付かず、ブレークポイントは「 bean.someMethod 」ですぐに停止します。コントロールの数と応答時間の間には相関関係があります。
また、別のテストを作成します。ダミーの RemoteCommand を独自のフォームのページの先頭に配置します。
<form>
<p:remoteCommand name="rcgg" partialSubmit="true" process="@this" update="@none" actionListener="#{bean.testMethod()}" />
<h:outputText id="msgs" value="Ajax Submit" />
<p:commandButton type="button" onclick="console.log('client start');rcgg('ddd');console.log('client end')" value="Ajax1" icon="ui-icon-refresh" />
</form>
そのため、サーバー側のコードもすぐに実行されます。しかし、「outputPanel」に多くの GUI 要素がある場合、この RemoteCommand「rcgg」とは関係なくても、サーバー側が実行を開始するまでにタイムラグが発生します。変。
また、いくつかの RemoteCommand 属性でテストしました (
immediate="false" async="true" partialSubmit="true" ignoreAutoUpdate="true" process="@none" global="false"
update="@none"
)しかし、成功もありません。
この「ビーンコールラグ」を取り除く方法がわかりません。
私は本当にあなたの助けが必要です。