2011-11-20 89 views
1

我想在js中建立一個聯繫人列表,但有很多js技術,比如backbone.js,spine.js,knockout.js等等,我真的不知道哪一個最適合我。什麼是Javascript框架最適合這種情況?

我的聯繫人有幾個全局類型:FacebookUser,User和UserList。用戶列表捕獲的是它是用戶或用戶列表的集合。此外,它本身可能有也可能沒有自己的聯繫信息(如公司或團隊)。

我想在樹視圖中顯示此列表,您可以深入到UserList中(並且已經加載組成員)。

最後,整個聯繫人列表是一個實例。我的意思是,您一次只能在同一個窗口中打開0到n個聯繫人列表。

我應該在這種情況下使用什麼框架?

回答

4

您提到的所有三個庫(backbone.js,spine.js,knockout.js)都針對單頁瀏覽器應用程序。

但是您對問題的描述聽起來更像是格式問題,而不是數據管理。也就是說,你希望你的頁面顯示數據。您不需要將更改從頁面保存回服務器;您的用戶將刷新頁面以顯示新的或不同的信息。

如果我對你的目標的理解是正確的,我會使用jQuery或YUI。你提到的libs會過度殺傷。

加入 YUI有一個不錯的treeview widget,支持延遲加載分支。我爲此使用它。

如果您決定使用模型圖層,YUI 3將包含ModelModelList。它們基於Backbone API。

重新:MVC註釋在評論中,OP提到

「從服務器上的同一數據的多個視圖,變化的傳播,和編輯檢測(如果用戶改變的數)和更新」對於那些情況,是的,現在很多很酷的孩子都在瀏覽器上使用完整的MVC框架。如果你想朝那個方向走,那麼你可以使用你提到的三個中的任何一個。注:

  • 骨幹,也可能是另外兩個,做提供完整的MVC。相反,Backbone提供型號&控制器部分,特別是型號。視圖使用Mustache是很常見的。另外,通常使用下劃線或jQuery來提供基本設施。如果你是谷歌的骨幹例子,其中許多包括jQuery。

  • 結帳YUI新y.App。它包含了一個有據可查的lib中的所有MVC部分。 y.App正處於熱門的發展階段,它基於Backbone API。 A video-cast

  • MVC瀏覽器上的框架是全新的。不要驚訝於快速更改庫代碼,不一致的文檔,少數示例等。您還應該考慮記錄和發佈調查。要獲得額外的功勞,請在移動瀏覽器上正常運行。傳聞信號是在瀏覽器端MVC框架上工作,但我們還沒有看到任何東西。

  • 我相信骨幹是最高級的模型庫。但它已被證明會讓很多新用戶感到困惑,因此基於其概念的其他一些庫也是如此。

  • 根據我對YUI的經驗,他們的Y.app將擁有最一致和完整的API集和最好的文檔。

+0

它只是我的一般編程感覺告訴我,一個很好的GUI有模型,視圖,控制器。這使我能夠從視圖中分離數據。它允許對同一數據的多個視圖,更改傳播和編輯檢測(如果用戶更改數字)並從服務器進行更新 – chacham15

+0

@chacham15 MVC只是一種方法,雖然我也傾向於使用MVC方法,但它不是唯一的。儘管如此,帶有或不帶有jQuery的JavaScript或者您提到的其他庫仍然可以成爲MVC應用程序的一部分。 –

+0

如果我沿着jquery的路走下去,那麼如果有必要的話,是否很難適應骨幹? – chacham15

0

如果我們把您的具體情況,我會極力去Knockout.js

淘汰賽是專爲UI即你的數據模型可以綁定到HTML元素,然後在模型中的任何改變操縱相應的用戶界面。

在您的情況下,聯繫人列表的添加/刪除操作將由Knockout自動處理。所有你需要的是定義如何處理樹視圖中的變化(無論是通過代碼還是通過HTML模板),Knockout將負責處理這個問題。

說過,定義聯繫人列表的樹視圖仍然是不同的任務,您可能需要爲此使用一些CSS/JS庫。

相關問題