同一页面中的多个 AjaxLazyLoadPanel Wicket 8

问题描述

是否可以使用 AjaxLazyLoadPanel 在 Wicket 8 中延迟加载 RepeatingView 的每个项目? 回到 wicket 7,使用 AjaxLazyLoadPanel,RepeatingView 中的每个项目都是独立加载的。

wicket 8 中的 AjaxLazyLoadPanel 行为已更改“当您在同一页面上有多个 AjaxLazyLoadPanel 时,仅使用一个计时器,并且所有面板都搭载在这个计时器上。”

通过此更改,所有项目都需要在渲染之前加载。有没有办法在 wicket 8 中解决这个问题?

解决方法

你的 AjaxLazyLoadPanels 应该覆盖 isContentReady

protected boolean isContentReady()
{
    return ...; // check whether result can be rendered
}

这样页面就不会被阻塞,同时数据可以异步加载。

请参阅示例 https://github.com/apache/wicket/blob/master/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/LazyLoadingPage.java