2013-08-06 26 views
1

當檢查實時郵件URL時,我發現他們使用#而不是Query string使用哈希(#)而不是查詢字符串有沒有任何優勢

https://bluxxx.mail.live.com/#n=xxxxxxxxx&fid=x

#被刪除它是一個404錯誤。有沒有使用#代替查詢字符串的優勢。它可以在PHP應用程序中實現。

+1

是不是隻是頁面上某個元素的class屬性。例如,如果在頁面底部定位div class =「xx」,則可以觸發site.com/#xx指向該div。所以這只是客戶端 –

+0

謝謝。 @ royal-bg –

回答

3

哈希URL常常被用來代替實際返回到另一個頁面的服務器(也就是說,頁面加載被Javascript攔截)。

散列和任何之後通常不向服務器發送...

想象以下場景......

<a id="SomeLink" href="#DoSomething"> 

你再附上一個onclick使用JavaScript ...

$("#SomeLink").click(function() {...}) 

如果該點擊功能不是return false,則即使對服務器的請求沒有b,網址在其末尾也會有一個#DoSomething een提出。

它也可以用作操作歷史記錄的佔位符,因此您可以更好地控制後退/前進按鈕(或許多其他客戶端javscript技巧)。以history.js爲例。

+1

感謝您的信息,非常有幫助。 @basic –

2

URL的哈希部分主要用於客戶端處理。你的javascript可以讀取它,如果你的頁面上有一個指定的錨點,它將滾動到該內容。瀏覽器在加載帶有散列的URL時不會將URL的散列部分發送到服務器,因爲查詢字符串被髮送到瀏覽器,因此可被PHP訪問。

+0

謝謝。 @@穆奈姆 –

相關問題