So verwenden Sie AjaxLazyLoadPanel in Wicket

Verwendung von AjaxLazyLoadPanel in Wicket

AjaxLazyLoadPanel-Definition:

Ein Panel, in dem Sie ein anderes Panel faul laden können. Dies kann verwendet werden, wenn Sie ein Panel / eine Komponente haben, deren Erstellung ziemlich umfangreich ist, und Sie dem Benutzer zuerst die Seite zeigen und das Panel ersetzen möchten, wenn es fertig ist.

Diese Funktion ist wirklich beeindruckend. Hier zeigen wir Ihnen, wie Sie ein normales Panel in dieses leistungsstarkeAjaxLazyLoadPanelumwandeln.

Originalverkleidung

Normale Pforte.


add(new PricePanel("price"));

Lazy Load Panel

In WicketAjaxLazyLoadPanel konvertieren.


add(new AjaxLazyLoadPanel("price")
{
  @Override
  public Component getLazyLoadComponent(String id)
  {
       return PricePanel(id);
  }
});

Fertig, jetzt hat das PricePanel einen verzögerten Ladeeffekt. Nice

In acht nehmen!

Einer der Nachteile diesesAjaxLazyLoadPanel ist, dass es keine Fallback-Version enthält. Wenn das JavaScript des Browsers deaktiviert ist, wird das Lazy Image für immer geladen.

Hier ist ein Trick, der damit herumspielt.

1. Fügt folgenden Code in die Wicket-Anwendungsklasse ein

protected void init() {
        getRequestCycleSettings().setGatherExtendedBrowserInfo(true);
}

2. prüfen Sie

WebClientInfo clientInfo = (WebClientInfo)WebRequestCycle.get().getClientInfo();
if(clientInfo.getProperties().isJavaEnabled()){
add(new AjaxLazyLoadPanel("price")
{
  @Override
  public Component getLazyLoadComponent(String id)
  {
       return PricePanel("price");
  }
});
}else{
  add(new PricePanel("price"));
}

Die obige Funktion führt die AjaxLazyLoadPanel-Funktion aus, wenn der Browser JavaScript unterstützt, andernfalls wird sie an eine normale Anforderung delegiert.