2013-01-24 42 views
0

我是使用SpineJS的新手,並且很開心。SpineJS不適合多頁面網站嗎?

而且,當我完成了接觸的例子,看到一些其他的成分SpineJS,

我意識到沒有關於網站的例子(其中有許多HTML頁)。

SpineJS似乎不適合網站設計的框架。

(我認爲這種架構是正確的單頁應用)

我想這樣的,因爲我應該在網站的第一個視圖中創建「的WebSocket」對象。

當我離開第一個視圖(html頁面已更改)時,我無法保留'websocket'對象。

我應該保持這個'websocket'的整個時間,直到用戶註銷。

是不是?或者有什麼方法可以創建多視圖網站?

(AngularJS框架支持這與$航線的 - 它可以加載HTML頁面無需重新加載整個框架。)

+0

spinjs擁有像所有現代客戶端框架一樣的路由。 – mpm

+0

我閱讀了有關路線的文檔。但它似乎只是操縱網址哈希。沒有提到加載外部模板文件(html)。 – EmbeddedWorker

回答

0

您可以在一個頁面內RIA肯定實現多頁的網站。好吧,這聽起來似是而非。從服務器端,它呈現單個頁面,爲源代碼提供服務。但是在客戶端代碼中,路由器對象可能會根據路由完全不同地呈現頁面。

編輯/添加:

不知道這是最好的,但在這裏是如何存儲在獨立的HTML文件我的應用程序加載模板的應用程序源代碼中,如myview.template = app.TemplateManager.fetch('grids/item');

templateManager: { 
    JST : {}, // hash table so not to load same template twice 

    fetch: function(path) { 
     url = "/app/templates" + path + ".html"; 

     if (!this.JST[path]) { 
     $.ajax({ url: url, async: false }).then(function(contents) { 
      this.JST[path] = _.template(contents); 
     }); 
     } 

     return this.JST[path]; 
    } 
    }); 
+0

Um .. SpineJS中的路由捕獲URL哈希變化(並且它可以改變哈希),然後它將通過回調通知。在這個回調中,我可以渲染我想要的模板。但是,我想知道的是如何加載外部html頁面(不在index.html中的模板代碼中)。如果我在我的網絡應用程序中有很多頁面,那麼index.html將會是包含很多模板的數千行。 – EmbeddedWorker

+0

啊,問題不在於Spine.js,而在於管理衆多模板?我的應用程序有幾十個「頁面」,每個頁面都使用帶有不同模板的Spine.js在瀏覽器中呈現。最初,我使用'