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 leistungsstarkeAjaxLazyLoadPanel
umwandeln.
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.