2012-10-04 68 views
0

我對這兩種技術都很陌生,想知道配置我的應用的最佳方式如何。我想沒有hastags,只需使用pushState。也從我最好的閱讀服務器端和客戶端之間的混合,但我不知道如何設置。我已經想出瞭如何做到這一點,但不是在一起。使用pushState進行Express和Backbone路由

至於現在這裏是我在這裏:

快遞航線

app.get('/', site.index); 
app.get('/product/:id', wiki.show); 

同樣能正常工作,而無需使用pushState的,但現在我要如何將二者結合起來一起?

回答

1

要創建混合客戶端/服務器應用程序,您希望客戶端和服務器都能夠呈現每個視圖。當用戶訪問您的網站時,服務器呈現視圖並將html發送給用戶。此時,客戶端應用程序加載和任何相關鏈接都應該被攔截,並由骨幹導航代替。

$(document).on('click', 'a:not([data-bypass])', function(e){ 
    href = $(this).prop('href') 
    root = location.protocol+'//'+location.host+'/' 
    if (root===href.slice(0,root.length)){ 
    e.preventDefault(); 
    Backbone.history.navigate(href.slice(root.length), true); 
    } 
}); 

這行代碼,一旦主幹應用程序已經啓動,將捕獲所有的錨標記,而無需在客戶端應用程序,而不是發送該網頁向服務器請求數據旁路屬性和火的路線功能。添加數據繞過屬性以創建不會激發路由功能的鏈接。