如何在Wicket中使用AjaxLazyLoadPanel

AjaxLazyLoadPanel定义:

您可以在其中延迟加载另一个面板的面板。 如果您创建的面板/组件非常繁琐,并且您首先要向用户显示该页面并准备好替换面板,则可以使用此方法。

此功能确实令人印象深刻。 在这里,我们向您展示如何将普通面板转换为功能强大的AjaxLazyLoadPanel

原始面板

普通Wicket面板。



 
add(new PricePanel("price"));

延迟加载面板

转换为Wicket AjaxLazyLoadPanel



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

完成后,现在PricePanel具有延迟加载效果。 好啊

谨防!

AjaxLazyLoadPanel的缺点之一是它不包含回退版本。 如果禁用了浏览器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. 如何在Wicket中检测浏览器是否支持JavaScript

翻译自: https://mkyong.com/wicket/how-do-use-ajaxlazyloadpanel-in-wicket/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值