Problema de latência com o overlayPanel Primefaces - carrega para preguiçoso
Eu estou usando o Primefaces 3.2 com jsf 2 e glassfish 3.1.2.
Eu tenho um p: dataTable de usuários contendo avatares do usuário. Sempre que o usuário move o mouse sobre o avatar, um p: overlayPanel aparece com mais informações (carregado com preguiça) no usuário e desaparece quando o usuário move o cursor para fora - assim:
<p:overlayPanel for="avatar" dynamic="true" showEvent="mouseover" hideEvent="mouseout" ...>
Isso funciona muito bem - desde que o usuário seja "lento". Sempre que um usuário move o cursor rapidamente acima de muitos avatares, muitos dos overlayPanels permanecem visíveis. Por exemplo, quando o usuário tem o cursor sobre a posição em que os avatares do usuário são exibidos e usa a roda de rolagem do mouse para rolar o usuário para baixo ou para cima.
Eu acredito que o overlaypanel começa a carregar as informações dinamicamente (dynamic="true"
) do servidor quandoshowEvent="mouseover"
é despachado e exibe o overlaypanel após a chegada da resposta do servidor. Desta forma, não é possível detectar se o cursor já está ausente quando o overlaypanel se torna visível.hideEvent="mouseout"
nunca é despachado.
Existe uma maneira de fazer o overlaypanel primefaces aparecer diretamente no mousover, mostrando um gif de carregamento e atualizando o conteúdo no overlaypanel quando a resposta vem do servidor.
Esta é uma boa abordagem ou alguém sabe alguma outra maneira de resolver este problema desagradável?
Obrigado pete