2011-11-16 65 views
0

在線閱讀關於散列聲音之後。我決定堅持我們目前的網址結構。我一直在開發一個網站,並使其完全非JavaScript。我進入了一個階段,我可以開始升級一些東西,看中javascript和ajaxy的東西。網址更改時沒有散列聲音和片段

給一點信息。基本上當用戶訪問該網站時,主頁是主要區域。它有一些統計數據和一個框。在這個框中有一些公司的細節,包括一些號召性用語按鈕(轉到地圖,聯繫人,e.c.t.)。

當搜索一個公司,或者直接鏈接到你去

http://mysite.com/company/公司名稱

這則網址被Apache重寫

http://mysite.com/index.php?company=公司名稱的公司

然後我的PHP腳本加載框與公司的詳細信息等。

現在我來做一些ajaxy的東西。我希望用戶能夠點擊我網站上的公司鏈接,並且無需重新加載頁面即可使用搜索。因此,如果他們點擊頂部查看公司的名稱,一個快速加載符號將出現在框中,然後公司詳細信息將被加載到該區域。

再次,這不是一個問題。我可以通過多種方式來完成,通過錨點上的點擊處理程序綁定類名綁定或url正則表達式綁定。

但是,繼承人我的問題。我需要能夠更改網址,以便它始終反映公司的名稱。用戶通過複製和粘貼網址來分享鏈接。即使我提供了「點擊複製到剪貼板」的固定鏈接按鈕,他們幾乎不會使用它。 Ebay是一個典型的例子,它們提供了很好的分享網址,但它常見的是在這個地方的論壇上發佈很長的內容。

Hashbangs或其他碎片化的URL方法將允許我這樣做。我也可以將javascript處理程序附加到document.load,以便在用戶從碎片URL訪問網站時填充框。但是,如果非JavaScript用戶使用碎片化的網址訪問網站,他們只會獲得首頁,並且必須手動搜索公司。

考慮到花時間和精力開始處理所有非js事務。我現在不想破壞或者不得不決定是否轉儲非js用戶。然而,阿賈克斯加載的內容是非常重要的,所以共享網址。

理想的解決方案要麼是PHP的方式讀取零散URL或JavaScript的改變URL路徑

任何人都可以在這方面幫助的方法嗎?

上傳:道歉對這篇文章。只是想給儘可能多的信息,並分享從研究中發現的什麼,以節省時間去檢查我可能已經看過的東西

+0

閱讀:http://www.workingwith.me.uk/articles/scripting/mod_rewrite –

+2

沒有真正有益的二極管,我知道關於國防部重寫 – Lee

回答

1

看看我使用hashtags構建的AJAX系統。它在現代瀏覽器中使用window.history,並且對於不支持酷酷的AJAX內容的舊版本而言會退步。

http://xeoncross.github.com/MicroStream/

你可以看到它活在我的網站:http://xeoncross.com

這低於簡單,良好的註釋代碼10KB,所以你應該能夠掌握它沒有問題。

+0

謝謝,我讀過關於歷史API的消息。從來不知道你可以改變這樣的網址。但是這並不能滿足我的需求。如果歷史API不受支持,您的ajax將無法使用。但IE9(和 Lee

+0

其實@Lee,無論你如何處理其餘的計劃,你都可以實現這一點。它降級爲 Xeoncross

+0

我知道我IE會很好地降低到正常的瀏覽器加載。但那不是我想要的。 IE支持ajax,但不支持歷史API。您的代碼似乎需要使用ajax的歷史API,因爲它修改了URL。如果歷史API要求不能保持URL正確,那對我的需求來說是完美的。我認爲基於研究,但我可以在Firefox和Chrome中使用你的方法,並在IE中使用片段。這種方式雖然並不完美,但它只會是IE用戶從非JavaScript用戶的URL欄發佈鏈接,這會導致問題。 – Lee