2012-11-28 77 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。