2011-12-21 43 views
6

您可能已經看到app.asana.com。 如果沒有,你應該檢查出來,這是一個非常好的設計的Web應用程序。Asana如何處理沒有#的網址?

但我不知道他們如何處理整個URL管理。 Backbone.js或Knockout.js使用#處理URL,並且之後的所有內容都將生成。

但是asana沒有散列並且可以修改URL,他們是怎麼做到的?

+0

可能重複[如何github保持加載頁面,同時更改URL?](http://stackoverflow.com/questions/6051057/how-does-github-keep-a-loaded-page-while-changing-網址) – Quentin

回答

5

看起來他們正在使用HTML5 history.pushState();,因此他們不必刷新頁面,因此他們不必在URL中使用#(散列)以轉到Web應用程序中的某個部分。

下面是關於history.pushState();一個很好的教程:https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history

這是什麼Google+和Facebook使用更改URL不清爽。

我希望這會有所幫助。

3

HTML5按壓狀態:http://spoiledmilk.dk/blog/html5-changing-the-browser-url-without-refreshing-page

這裏最大的好處是,如果你貼上一個體位網址直接進入瀏覽器(或點擊電子郵件中的鏈接),服務器看到完整的URL,可以立即發送向客戶提供適當的任務數據。我們曾經使用過url片段,但是我們需要在加載應用程序以在JavaScript中讀取片段並將其傳遞給服務器之後進行第二次往返。