Comment utiliser AjaxLazyLoadPanel dans Wicket
Définition AjaxLazyLoadPanel:
Un panneau où vous pouvez charger paresseusement un autre panneau. Cela peut être utilisé si vous avez un panneau / composant assez lourd en création et que vous voulez d'abord montrer à l'utilisateur la page et remplacer le panneau quand il est prêt.
Cette fonctionnalité est vraiment impressionnante. Ici, nous vous montrons comment convertir un panneau normal en ce puissantAjaxLazyLoadPanel
.
Panneau d'origine
Panneau de portillon normal.
add(new PricePanel("price"));
Panneau de chargement paresseux
Convertir en WicketAjaxLazyLoadPanel
.
add(new AjaxLazyLoadPanel("price") { @Override public Component getLazyLoadComponent(String id) { return PricePanel(id); } });
Terminé, le PricePanel a maintenant un effet de chargement paresseux. Nice
Il faut se méfier!
L'un des inconvénients de ceAjaxLazyLoadPanel est qu'il ne contient pas de version de secours. Si le JavaScript du navigateur est désactivé, l'image paresseuse continuera de se charger indéfiniment.
Voici une astuce qui joue avec.
1. Met le code suivant dans la classe d'application de Wicket
protected void init() { getRequestCycleSettings().setGatherExtendedBrowserInfo(true); }
2. Vérifie ça
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")); }
La fonction ci-dessus exécutera la fonction AjaxLazyLoadPanel si le navigateur prend en charge JavaScript, sinon déléguez-le à la demande normale.