2009-12-08 81 views
1

我會解釋: 我有一個圖片庫,第一頁是display.php。 用戶可以使用箭頭翻閱圖片,當你點擊一個箭頭時,它會發送一個Ajax請求來從數據庫中檢索下一張圖片。現在我希望網址根據顯示的圖片進行更改。阿賈克斯 - 如何更改網址的內容

So if the first picture is: 
www.mydomain.com/display.php?picture=Paris at night 

我會翻轉到下一個和URL將

www.mydomain.com/display.php?picture=The Big Ben 

我該怎麼辦呢?

+0

你使用像jQuery,YUI,ExtJS的,或原型的框架? – Upperstage 2009-12-08 14:12:12

+0

你想更改資源管理器導航欄中的URL? – rodrigoap 2009-12-08 14:14:04

+0

我會更好地使用JQuery嗎? 是的。 – Gal 2009-12-08 14:14:48

回答

3

這裏的訣竅是uri的錨點片段。

'#'之前的部分指向互聯網上的資源,並且通常在頁面上指定爲錨點後。

如果資源相同,瀏覽器不會刷新,但在存在時移動到錨位置。

通過這種方式,您可以從可用性的角度保持瀏覽器歷史記錄的便利性,同時使用ajax替換頁面上的某些部分,以實現快速響應的用戶界面。

使用類似jQuery歷史的插件(如其他人所建議的)非常簡單:您可以用rel屬性修飾某些元素,然後插件負責處理其餘的元素。

也有點與這個主題有關的是'hijax',這是我真正喜歡的東西。

這意味着生成html就像在ajax之前的那些日子裏一樣。然後你劫持鏈接等特定行爲,並用ajax請求內容,只替換必要的部分。這與上述技術相結合可以真正實現SEO友好和可訪問的網頁。

+0

對,我明白了,這聽起來完美,我想要的。謝謝! – Gal 2009-12-08 16:27:25

0

你真的想在這裏使用AJAX嗎?

傳統的Web請求將這樣的工作...

  • 用戶導航到Display.php的
  • 用戶點擊「下一步」,位置更新爲「Display.php的?圖片=大奔「
  • 大本被示爲用戶,以及鏈接到‘Display.php的?圖片= Parliment’
  • 用戶點擊‘下一個’和位置被更新爲‘Display.php的?圖片= Parliment’

依此類推。

使用AJAX,你基本上用GET「後臺」GET取代GET,它只是替換頁面的一部分。你可以這樣做,使事情更快......比如......

  • 用戶導航到Display.php的
  • 用戶點擊「下一步」,使用AJAX請求
  • 獲得下一個圖像位置將圖像(和圖像說明)更改爲下一個圖像

您建議的是,您使用AJAX檢索「下一個網址」,然後在整個頁面上執行GET。當你發送每個頁面並且完全不使用AJAX時,發送「下一個」圖像會更好。

+1

我不認爲他/她真的意味着他/她想要在沒有刷新頁面的情況下轉到下一個網址,而只需要一個真正的uri就可以複製粘貼或在瀏覽器歷史記錄中顯示... – 2009-12-08 14:46:58