在當前的HTTP規範中,URL片段(包含並在#
之後的URL部分)不會以任何方式發送到服務器。然而,隨着AJAX的普及,使用片段來維護某種形式的狀態,在很多情況下,服務器可以在請求時瞭解URL片段。例如,如果您轉到http://facebook.com,然後單擊流中的用戶名,URL將變爲http://faceboook.com/#!/username - 允許FB更新您的頁面,而無需重新加載其所有引導程序JS和HTML。但是,如果您要使用瀏覽器重新加載,服務器將無法看到URL的「#/!用戶名」部分,因此無法爲您預先呈現內容。這會強制您的瀏覽器在客戶端Javascript已加載並解析片段後發出額外請求。是否有過將URL片段包含到HTTP請求中的提議?
我想知道是否有任何努力或提出建立一個標準的機制來實現這一點。
例如,可能有一個標準的HTTP標頭,它將與URL片段的值一起發送 - 任何關心此類事情的服務器都可以訪問它。
對於整個網絡應用程序社區來說,這似乎是一件非常有用的事情,所以我很驚訝沒有聽到任何建議。或許我錯過了它。
你有一個例子,查詢字符串不會做這項工作嗎? – hammar 2011-04-21 01:51:26
你如何聲稱'阿賈克斯使用片段狀態'?許多有狀態的事情都會使用基本URL或查詢字符串來維護它們所需的所有狀態。 – bmargulies 2011-04-21 01:59:47
我在第二段中添加了一個FB如何使用片段來反映當前狀態的示例。在這個實例中使用URL參數會強制應用程序在每次視圖轉換時重新加載自身。 – levik 2011-04-21 20:16:15