Vaadin에서 일부 값을 표시하는 데 시간이 오래 걸리는 작업을 실행하는 여러 레이아웃 구성 요소가 탭으로 추가되었습니다. 계산 시간을 최소화하기 위해 관련 패널/레이아웃이 표시 될 때만 시간이 많이 소요되는 작업을 실행하고 싶습니다. 일반적인 이벤트 리스너를 시도했지만 해고 당하지 않았습니다. 스윙에서 저는 그러한 사건들에 반응하는 데 익숙합니다. 그런데 바 이딘에서 어떻게합니까?Vaadin을 사용하여 브라우저 뷰포트에 표시되는 AbstractComponent의 리스너
gridLayout.addComponentAttachListener(new ComponentAttachListener()
{
@Override
public void componentAttachedToContainer(
final ComponentAttachEvent event)
{
System.err.println("attach-listener-" + event);
}
});
gridLayout.addLayoutClickListener(new LayoutClickListener()
{
@Override
public void layoutClick(final LayoutClickEvent event)
{
System.err.println("layoutclick" + event);
}
});
이러한 UI 컨테이너의 콘텐츠에 대해 "지연로드"를 실현하는 것이 중요합니다. 나는 이것이 내가 이것을 깨닫려고 노력한 유일한 사람이 아니라고 확신한다. 당신의 접근 방법은 무엇입니까?
자바 스크립트는 임의의 DOM 요소에 대해 자바 스크립트가 이러한 이벤트 (뷰포트에서 표시/사라짐)를 놓친 것 같습니다. Vaadin이 컴포넌트에서이 이벤트를 실현하는 데 어려움을 겪고있는 이유는 다음과 같습니다. https://stackoverflow.com/questions/1462138/js-event-listener-for-when-element-becomes-visible – PAX