2012-11-28 78 views
1

我正在创建一个包含大量链接的应用程序。由于链接包含在表格中的单元格中,因此Wicket生成的URL往往会变长,从而使页面加载速度变慢。Wicket中较短的链接网址

例如:

<a href="./?0-2.ILinkListener-f-t-body-rows-11-cells-2-cell-li-35-link">2011-06-09 00:00:00.0</a> 

我试图找出哪里开始探索的URL的编码/解码,但它是相当复杂的材料。我的第一种方法是只使用'short'名称作为组件(如“t”,“f”等)。我可以想象有一个更好的方法。

我可以想像它可能只是'编号'的链接;作为页面依然存在,所以我最终会是这样的:

<a href="./?0-2.ILinkListener-1237">2011-06-09 00:00:00.0</a> 

是否有我的问题的解决方案已经在那里,或任何人都可以点我朝着正确的方向?

回答

2

如果可以接受Javascript解决方案,则可以在整个表上使用单个事件侦听器,而不是表中的许多链接。

的灵感见这个例子:

https://github.com/svenmeier/apachecon-wicket/tree/master/src/main/java/eu/apachecon/base/ui/performance

通知Ajax的行为如何动态传输额外的参数给服务器。它只能查找行。如果您需要区分正在点击的表格单元格,则必须扩展该想法。

+0

嗯。看起来像一个可能工作的解决方法。尽管如此,我希望有一个更基本的解决方案。 – RobAu

+0

我根据您的解决方案创建了更通用的解决方案。请参阅:https://github.com/RobAu/wicket-jq-autocomplete/tree/master/jq-autocomplete/src/main/java/org/audenaerde/onchildeventbehavior – RobAu

0

Sven提出的解决方案是更好的解决方案。

下面是一个解决方案,您可以调用基础:注册您自己的根IRequestMapper,它将压缩/解压缩真正的映射器生成的URL。有关自定义根映射器的示例,请参阅CryptoMapper和HttpsMapper。