2013-03-18 79 views
0

我剛剛開始使用一個已經使用Backbone的Web項目,但到目前爲止我還沒有做任何Web。我一直在閱讀文檔並閱讀路由器(http://thomasdavis.github.com/2011/02/07/making-a-restful-ajax-app.htmlhttp://backbonetutorials.com/what-is-a-router/#/route/action),但我不確定是否理解其中一個基本的東西。骨幹路由,什麼是#標籤?

用於骨幹路由器的#標籤是什麼?我搜索了一下,看到#被用來指向頁面中的特定點,但除此之外,我不太確定骨幹網如何使用它。像這樣的網頁上:http://backbonetutorials.com/what-is-a-router/#/route/action他們這樣說:

Also note that routes interpret anything after "#" tag in the URL. All links in your application should target "#/action" or "#action". (Appending a forward slash after the hashtag looks a bit nicer e.g. http://example.com/#/user/help) 

但到底是什麼,實際上意味着什麼呢?我不太明白。對不起noob問題,但我真的無法弄清楚。謝謝。

回答

2

散列後的URL的部分是「fragment identifier」,這是原本引用頁內錨狀http://example.com/my_long_article#Section-14其中即用<a name="Section-14"></a>只是部分14材料上方的單一的HTML文檔。瀏覽器實際上並沒有將這部分URL發送到請求中的服務器(這可能令人沮喪),它只是用來將長文檔自動滾動到該位置。

對於現代的單頁面應用程序,該技術已被重新用於獲取URL,以表示應用程序中的特定屏幕或視圖,但不會導致瀏覽器實際請求其他文檔。因此,如果您從/my-app#cars導航到/my-app#trucks,則瀏覽器不會加載新頁面,這意味着您的JavaScript保持加載狀態,並且可以以「單頁」樣式進行響應。

現代瀏覽器可以通過HTML5 pushState API實現此目的,但對於舊版瀏覽器,散列方法仍然很常見。