2012-08-29 30 views
7

我想要做的是在PhoneGap和Backbone.js中構建一個簡單的應用程序。該應用程序有一個登錄頁面,在登錄成功後,用戶可以通過一個簡單的菜單選擇幾個選項。用戶可以選擇查看保存的列表,查看項目列表或查看信息頁面。我知道我想如何構建所有的視圖和模型,所以我的問題是,與使用多個頁面相比,在一個頁面上這樣做是否存在任何缺點。Backbone.js和PhoneGap,單頁或多頁?

把它分解成更小的部分:

  1. 是否加載所有的JavaScript在一個頁面上有嚴重的性能問題?
  2. 如果路由器關閉,.remove()和.unbind(),切換到新視圖時的所有當前視圖,我是否仍存在內存問題?

回答

6

Backbone設計用於SPA應用程序。我並不是說你不能跨越多個頁面,但在我看來,增加了更多的複雜性。從您的描述中,我會將您的申請保留爲SPA。

其次,使用模塊構建您的應用程序。使用諸如require.js之類的庫。我無法推薦它。我不會詳細討論你爲什麼要使用它,因爲你可以閱讀更多關於它的文章here(我會推薦閱讀整本書)。一旦你的應用程序準備好部署,你可以使用r.js,require.js的構建腳本。這將把你的所有或部分模塊連接成一個文件。這將大大加快你的應用程序的性能,特別是如果你有一堆模塊。

最後關於內存優化,我使用由Derick Bailey開發的方法,您可以閱讀約here

希望這會有所幫助。

+2

他說這是一個簡單的應用程序,沒有足夠的理由使用require.js – Andy

+1

嗯,我認爲你的意見是相當主觀的。由於Jdeer關注性能,因此require.js使得將其「各種頁面」連接成單個文件非常簡單。我可以從經驗告訴你,模塊化路線會比阻礙更多地獲得好處,特別是如果你計劃發展你的應用程序。我不認爲你的意見是值得贊同的。如果你相信我的答案是錯誤的,那麼一定要提供另一種解決方案。 – TYRONEMICHAEL

+1

我們在此主題上討論的性能問題與請求和響應有關,而與初始內容加載無關。由於該應用程序是一個簡單的應用程序,因此不需要爲模板提供多個頁面,腳本的數量也很少。你可以使用某些東西並不意味着你必須使用它。我沒有說你的答案是錯誤的,我只是說你提到的那個部分require.js是錯誤的。它會誤導你誤導你的方式。 – Andy