2011-04-24 42 views
3

我有一個頁面(http://myflashpics.com/picture/p9e0),側面有一些用戶信息,側面有小縮略圖。現在正在做的是鏈接到一個完全不同的頁面,邊欄也會重新加載。我想知道是否有可能更改圖片,評論部分,標題以及URL,因此如果用戶想要鏈接到任何地方。只刷新頁面的一部分並更改URL? jQuery的?這可能嗎?

這可能是不可能的 - 但如果是這樣,我甚至不知道從哪裏開始使用谷歌搜索,甚至開始瞭解這將如何工作。

所有的答案讚賞!鏈接和源代碼也不錯。

+0

你在找Ajax嗎? – 2011-04-24 04:10:34

+0

當然...從來沒有真正與它合作,所以我不知道。 – iosfreak 2011-04-24 04:27:51

回答

3

在支持HTML5的瀏覽器中,您可以使用window.history.pushState來執行頁面的AJAX部分加載,並仍然完全更改頁面的URL。這是GitHub使用的內容(請參閱一些更多信息以及展示their blog post, The Tree Slider技術的視頻)。有關Dive Into HTML5 History API page這個主題的一些很好的信息。

在瀏覽器不支持HTML5,你要麼必須使用location.hash(如果你想可鏈接的URL),或者不使用AJAX(加上當前執行棒)。我在uses jQuery這個任務中。

+0

請參閱[History.js項目](https://github.com/balupton/History.js),以獲得支持'pushState'並仍然優雅地降級的庫。 – 2011-04-24 04:45:47

1

總之,你不能改變URL無需重新加載的頁面,但你可以使用AJAX來加載新數據廣告,如果頁面已更改。您也可以通過在地址欄中的「#」後面更改任何內容來跟蹤歷史記錄。一個實現此功能的網站的好例子是grooveshark.com

+0

而不是像這樣使用:http://mydomain.com/picture/randomstring圖片,我應該將其轉換爲這樣的mod_rewrite:http://mydomain.com/picture/#/short字符串,所以它會使用location.hash? – iosfreak 2011-04-24 04:30:43

1

你可以簡單地使用ajax來做到這一點。如果您需要更改網址,請使用Javascript更改location.hash屬性。

+0

難道不會像http://mydomain.com/picture/oldstring#newstring?我希望它能像這樣工作:http://mydomain.com/picture/newstring – iosfreak 2011-04-24 04:26:25

+0

如果你不喜歡清爽,你需要去HTML5。 。否則,您需要更改'location.href'屬性來刷新頁面。檢查history.js jQuery插件,這將是最佳解決方案。 – Shameer 2011-04-25 04:47:45