WicketでAjaxLazyLoadPanelを使用する方法

AjaxLazyLoadPanel定義:

A panel where you can lazy load another panel. This can be used if you have a panel/component that is pretty heavy in creation and you first want to show the user the page and the replace the panel when it is ready.

この機能は本当に印象的です。ここでは、通常のパネルをこの強力な `AjaxLazyLoadPanel`に変換する方法を示します。

オリジナルパネル

通常のWicketパネル。


add(new PricePanel("price"));

レイジーロードパネル

Wicket `AjaxLazyLoadPanel`に変換してください。


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

今度は、PricePanelに遅延読み込み効果があります。ニース

注意してください!

この AjaxLazyLoadPanel の欠点の1つは、フォールバックバージョンを含んでいないということです。ブラウザのJavaScriptが無効になっている場合、遅延イメージは永久にロードされ続けます。

ここでそれを使って遊ぶことができます。

{空} 1。 Wicketのアプリケーションクラスに次のコードを追加します

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

{空} 2。それをチェックする

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"));
}

上記の関数は、ブラウザがJavaScriptをサポートしている場合はAjaxLazyLoadPanel関数を実行し、それ以外の場合は通常の要求に委譲します。

リファレンス

  1. link://wicket/how-do-detect-browser-javascript-or-ajax-disabled-in-wicket/[どのようにして

検出はブラウザサポートです。WicketのJavaScript]