2011-11-07 112 views
2

不找當前的最佳實踐模塊化的JavaScript應用程序

我希望建立一個模塊化的用於移動設備的JavaScript應用程序(綠色領域實現)開始flamewar :)。所以要求它需要相對較輕的權重,支持基於運行時決策延遲加載子模塊(如用戶偏好),並具有最小的MVC功能模板。與後端的通信可能將基於websocket API(如果它改變了任何內容)。想想像需要在Mobile Safari內部運行的www.twitter.com。

我能勝任jQuery,並且我聽說很多新的javascript框架(backbone.js,require.js,zepto.js等),但沒有機會使用它們。我懷疑我有足夠的時間來學習和創建原型,所以我正在尋找一些社區智慧,認爲現在被認爲是最佳實踐。

謝謝。

+0

基於意見的問題。 –

回答

2

編寫JavaScript應用程序時,良好的應用程序結構是您的朋友。我看了一下Spine和Backbone,但最終使用了JavaScriptMVC。主要理由:

  • 基於jQuery(這樣你在網絡上找到每一個jQuery插件只會整合很好)
  • 提供(根據插件/ MVC架構
  • 組織你的應用程序的默認方式促進最佳實踐(測試等)
  • EJS作爲模板引擎
  • 容易擴展
  • 非常好documented
  • 內置生產力工具來生成代碼,壓縮代碼,JS依賴關係管理

也許你可以結合它與jQuery手機來滿足你的需求。

它可能適合你的需要,因爲:

  • 模塊化:偷(內置的依賴關係管理系統)負載:你的應用程序
  • 延遲加載的每個模塊創建插件/ MVC模塊你的東西取決於他們被訪問的時間
  • 壓縮:通過使用Google Closure編譯器壓縮production.js文件來最小化帶寬。
+0

JavaScriptMVC是一個巨大的臃腫框架。由於手機的限制,我懷疑你有能力使用它。 – Raynos

+0

@Raynos這是一個快速入門的好框架(如果我正確理解問題,這是一個要求)。脊柱需要額外的設置,如包括require.js等...此外,您不需要包括整個JavaScriptMVC的東西,但只是你需要的東西。但是,當然,從來沒有嘗試過移動設備。 – Juri

+0

他們的jQuery文件夾本身就是2MB的源代碼:\它是一個龐大的框架,你不能將它加載到移動設備上,你需要一些輕巧靈活的東西。 – Raynos

2

模塊化的JavaScript涉及兩件事情

  • 編寫模塊化的代碼
  • 加載模塊代碼

寫模塊化的代碼更容易。你所要做的只是鬆散耦合的代碼,它不依賴於全局狀態並將自己公開爲模塊。

加載模塊代碼需要使用模塊加載程序。你提到的require.js是流行的。或者你可以嘗試一些更近似的東西,如seajs。至於其他框架,你並不真的需要它們,但如果你不知道如何做JavaScript架構,那麼我會試着說你應該使用zepto和spine.js。