2010-01-28 25 views
3

有一個衆所周知的問題,即瀏覽器不會在請求歷史記錄中放入Ajax請求,並導致可收藏性,前進/後退按鈕和刷新問題。Ajax for Wicket後可收藏的URL

此外,通過使用Javascript window.location.hash = ...,該問題有一個常見的解決方案,即將哈希符號#和一些其他參數附加到URL。

例如,在this question中提出了這個問題的基本解決方案。

=>我的問題是如果這樣的解決方案已經集成在Wicket中,以便使用現有的Wicket設施並且不需要添加自定義的Javascript。如果沒有,我會對如何做到這一點感興趣。

這樣的解決方案必須回答散列後應該放置什麼的問題。

我喜歡這個想法,即在非哈希前的可書寫的URL(在非Ajax的情況下)可以放在它後面。例如,當您處於http://host/catalog 並達到頁面http://host/product/xyz時,Ajax觸發的URL將爲
http://host/catalog#/product/xyz

然後,編寫一個onload處理程序將很容易,該處理程序檢查#並在散列之後重定向到URL。

+0

大多數問題上有至少包含一個問號..哪裏是你的嗎? – Tim 2010-01-28 22:25:56

+0

@Tim:它隱藏在「=>我的問題是...」 – Wolfgang 2010-01-29 09:01:15

+1

表示的文本中間。這個評論部分是在開玩笑。我的意圖是讓你更多地澄清你的問題..你問是否Wicket有#地址?如果是這樣,那麼不。你是問如何實現這一點,然後指出你已經嘗試過,你已經聯繫了誰,等等。 – Tim 2010-01-29 09:31:27

回答

1

據我所知,沒有這樣的解決方案已經集成到檢票。

要了解如何做到這一點,我在ical-aggregator項目中做了這樣的事情(但仍然比較原始) - 有趣的部分位於提交http://repo.or.cz/w/ical-aggregator.git/commit/4cefb01eac230ac5dc776a13a8b751e1c17a4f00

如果你想合作解決這個作爲一個通用的方式作爲檢票工程,我會很樂意提供幫助。

+0

感謝您的意見。不幸的是,因爲我目前的項目使用其他框架,所以我現在已經離開了Wicket。但我會跟進這個話題。有時候...... ;-)現在,我將以此爲答案,因爲這是可用的最佳方案。 – Wolfgang 2010-11-01 08:22:15