我不想使用hashbangs或shebangs,因爲它們是已知的。我想按照Facebook的方式去做。您點擊個人資料,欄保持不變,內容使用AJAX加載。我想知道是否可以使用新的HTML5 History API。我可以使用AJAX加載新內容,但更改omnibar中的網址嗎?
編輯:我想我會繼續前進,並深入到HTML5的歷史API。如果有人有更好的建議,請保持這個問題。
我不想使用hashbangs或shebangs,因爲它們是已知的。我想按照Facebook的方式去做。您點擊個人資料,欄保持不變,內容使用AJAX加載。我想知道是否可以使用新的HTML5 History API。我可以使用AJAX加載新內容,但更改omnibar中的網址嗎?
編輯:我想我會繼續前進,並深入到HTML5的歷史API。如果有人有更好的建議,請保持這個問題。
的HTML 5 API的歷史是正道走。
的pushState的和replaceState方法將允許您更改URL未做一個HTTP請求。不同之處在於pushState將新狀態推入歷史堆棧,而replaceState替換堆棧頂部的項目。
你不需要那樣做。您可以防止發生默認操作。例如,我們有jQuery;
這將阻止鏈接的默認操作(跟隨url)發生。
P.S.我一直聽說家當專指這樣的:#!
,並不僅僅是#
,但我可能是誤導...
是的,shebang(aka hashbang)是'#!'。 URL中使用的'#'只是一個散列。 –
我知道我可以防止默認操作。但是,點擊阻止其默認操作的鏈接不會更改網址。我希望人們能夠在加載AJAX內容的情況下共享當前狀態下的頁面鏈接。例如,我在foo.com上。我點擊home,使用AJAX加載內容,但是URL沒有改變,因爲我阻止了它的改變。我希望人們在URL欄中看到foo.com/home或類似內容,即使我沒有真正更改網址。 –
在這種情況下,pushState是正確的方式 - 我想我誤解了你的問題 – DirectXMan12
而且看看jquery-pjax
這就是我想的。不管怎麼說,還是要謝謝你。 –