2011-07-22 140 views
6

幾個月前,我在vkontakte.ru(俄羅斯FB)上看到部署了一項新功能: ,當用戶頁面之間進行切換時,不會發生瀏覽器重新加載。相反,新頁面被預加載,然後顯示。頁面上的音樂播放器(它位於頁腳頂部)保持播放,不間斷。Facebook如何更改瀏覽器地址欄中的網址而無需重新加載頁面或使用#或?

但是,瀏覽器地址欄中的URL更改,而不是通過哈希標記或查詢字符串。

因此,我的頁面是vk.com/myPage ...我點擊一個朋友,他的頁面預加載,然後顯示在哪個時間瀏覽器地址欄中的URL更改爲vk.com/myfriendJoe,並且沒有瀏覽器重新加載發生。

請注意,它只適用於最新版本的Safari瀏覽器和Chrome瀏覽器,對於Firefox 3.6等其他瀏覽器,它實現了使用井號標籤和查詢字符串的回退功能。

我做了一些研究,發現window.history.pushState,但它似乎只處理查詢字符串。

任何想法將不勝感激。謝謝。

+0

http://spoiledmilk.dk/blog/html5-changing-the-browser-url-without-refreshing-page –

回答

1

這是由HTML5定義的新的history API。你可以看到另一個演示here。你說得對,pushState這樣做,但它只適用於查詢字符串(如該頁面演示,它使用的根相對URL,如/history/first/history/second)。

-2

是在後臺使用Ajax調用,重新使用新的內容頁面的某些部分的網站?這是不改變網址的一種方式。

+1

問題是它*是*更改URL。 –

相關問題