jsf 2とglassfish 3.1.2でPrimeface 3.2を使用しています。Primefacesによる遅延問題overlayPanel - 遅延ロード
私は、ユーザーのアバターを含むユーザーのp:dataTableを持っています。ユーザーはアバターAP上にマウスを移動するたびに:overlayPanelは、ユーザーに(遅延ロード)の詳細情報が表示され、ユーザーが離れてカーソルを移動させると消える - このように:これは非常にうまく機能
<p:overlayPanel for="avatar" dynamic="true" showEvent="mouseover" hideEvent="mouseout" ...>
- ユーザーが「スローハンド」されている限り。ユーザーが多くのアバターの上でカーソルをすばやく動かすと、多くのoverlayPanelsが表示されたままになります。 たとえば、ユーザーがユーザーのアバターが表示されている位置にカーソルを合わせ、マウスのスクロールホイールを使用してユーザーテーブルを上下にスクロールします。
showEvent="mouseover"
がディスパッチされたときにオーバーレイパネルが情報を動的にロードし始め(dynamic="true"
)、サーバーからの応答が到着した後にオーバーレイパネルが表示されると考えています。 この方法では、オーバーレイパネルが表示されたときにカーソルがすでに離れているかどうかを検出することができないため、hideEvent="mouseout"
はディスパッチされません。
primefaces overlaypanelをmousover上に直接表示し、ロードGIFを表示し、応答がサーバーから来たときにオーバーレイパネルにコンテンツを更新する方法はありますか。
これは良いappraochですか、誰もこの厄介な問題を解決するために他の方法を知っていますか?
おかげでピート
あなたは幸運にも1つのコンテンツを実際に取得します。私がまったく同じ問題を経験している間、私のコンテンツは完全に欠落しています。実際の行モデルへの参照を持たない単純なh:outputText(varで指定したもの)は表示されません。その素人からの開発者が非常に一般的なエンタープライズの問題(IMOでは、p:overlayPanelやp:tooltipがテーブルで使用するように設計されているように見える)を考慮していないこともわかりました。 – Paranaix
Firebugでワークフローをテストしましたか? JSエラーをチェックし、サーバーからのajaxレスポンスの内容も確認します。 –
はい、ajaxリクエストが送信されます。その本当に奇妙な; 3.3ではなく最新の3.4スナップショットを使用しています。新しいバグかもしれない。 – Paranaix