我有一個在後端使用Java的現有Web項目。它使用絕對路徑在頁面之間進行鏈接。在JQM中使用絕對URL
我目前正在將項目轉換爲使用jQuery Mobile。我首先嚐試使用相關url,但是改變項目中的整個url結構並不容易,特別是當很多url都是隨時生成的時候,並且找到相對於當前顯示頁面的正確相對路徑是有點複雜(主要是因爲我們自己的AJAX調用的目標是服務器上的不同網址端點)。
因此,我開始考慮是否可以更改JQM代碼以僅使用絕對URL。我目前正在嘗試將location.hash的用法更改爲location.href,以使其重寫URL中的整個路徑,而不僅僅是哈希後的部分。你們有人試過嗎?可能嗎?
旁註:爲什麼JQM首先有相對URL模型和散列?是否支持回溯?在我看來,這很不可能,因爲他們將整個歷史堆棧保留在urlHistory
字段中。還是僅僅處理頁面內的相對鏈接?在這種情況下,是否值得考慮在JQM中創建兩種URL模式,並讓框架用戶決定使用哪種模式(可能在'mobileinit'中):如果實現使用相對鏈接(即靜態HTML項目在哪裏JavaScript完成所有工作),另一個是絕對鏈接(即動態Web項目,其中大部分計算是在服務器上完成的)?它也可以解決這個問題,如愚蠢的網址,如http://server.com/folder1/folder2/page.html#../../index.html
...
好的,因此改變location.href的天真解決方案無法工作,因爲每當location.href被更改(我們不希望在jQM中)時,瀏覽器會自動刷新整個頁面。但是,在HTML5中,支持[history.pushState](http://spoiledmilk.dk/blog/html5-changing-the-browser-url-without-refreshing-page),並且有一個庫History.js可以自動檢測功能是否可用,並回退到更改舊版瀏覽器的散列。 – 2011-04-19 12:41:07