4

我正在學習Python並構建我的第一個Web應用程序。我一直在通過Django的教程,並開始考慮如何做客戶端。我希望它是web 2.0-ish,並且需要一些AJAX/javascript功能來顯示數據庫中的列表,以及諸如日期選擇器,自動完成等很酷的東西。Sproutcore/Qooxdoo有什麼用處?

看起來好像是html/css/javascript尤其是jquery)是最受歡迎的選擇。作爲一名新手,我對像qooxdoo和sproutcore這樣的框架感興趣,但不明白他們的工作方式。例如:

  1. 我可以輕鬆地將代碼從一個應用程序重用到另一個應用程序嗎?
  2. 你也可以輕鬆地擁有一頁靜態頁面嗎?
  3. 他們只有一個頁面,有點像Gmail?有關係嗎?
  4. 真的比不使用它容易嗎?我的意思是框架的學習曲線等於學習html/css/javascript?
  5. 這些類型的應用程序加載速度較慢,因爲它們有很多開銷?

或者,

什麼是使用/不使用 其中之一的優點/缺點?

歡迎任何對初學者的建議!

回答

5

這裏是從視角的Qooxdoo一個答案:

我可以很容易地從一個應用 重用代碼到另一個?

是的,你可以。您可以在可以包含在多個應用程序中的「庫」中組織代碼。但是每個應用程序都將是一個單獨的整體(將其視爲一個二進制文件,靜態鏈接庫代碼),但沒有手動複製.js文件。

你能輕鬆擁有一頁 靜態頁面嗎?

我不知道你的意思在這裏。

他們是 只有一頁,有點像gmail?

是的,你用qooxdoo構建單頁面應用程序。

重要嗎?它真的比任何 更容易比不使用它?我的意思是 框架 的學習曲線等於學習html/css/javascript?

這很大程度上取決於您的背景。如果你掌握了面向對象的知識,甚至可以體驗像Qt或Swing這樣的OO接口庫,那麼選擇qooxdoo應該是非常直接的。在這種情況下,我認爲學習的努力比html/css/javascript要少,因爲你基本上是在對付一個面向底層技術的OO類庫。 (這是一件好事,例如跨瀏覽器的CSS很難)。

這些類型的應用程序加載較慢 ,因爲它們有很多開銷?

我會這麼說。你支付基礎設施的罰款。但是如果一個真正的網絡圖形用戶界面是你想要的,這是值得的。

使用/不是 使用其中之一有什麼優點/缺點?

正如其他地方所說,它的確取決於你想達到的目標。從你的問題中我收集到,你不只是想「顯示數據庫中的列表」,而是想要一個交互式用戶界面,包含高級小部件(日期選擇器),跨瀏覽器事件處理(自動完成),也許還有其他控件,佈局管理等等。對於這種情況,我說專業人員勝過弊。

但是這是一項投資,對於我說的一次性項目來說太多了。如果你只是想要一些列表視圖,堅持使用Django模板,也許加入一點Javascript投入。

+0

我對某個項目感興趣,但如果它運行良好,我很可能會再次使用它。我不介意學習新技術。 從前面說過的,我將創建一個小型網站,其中包含正常的常見問題,常見問題,家庭......頁面。這裏面將是一個Web界面或包含應用程序的ria區域。似乎我需要確定是否希望我的應用的行爲類似於「加速網站」(Web界面)或類似桌面應用(ria),然後進行我的選擇。 看來,有可能做出非常好的應用程序? – Steve 2010-06-30 21:52:11

+0

請注意,使用Web界面,您仍然是Web體驗中最具破壞性的部分 - 頁面更改。 qooxdoo支持普通頁面上的應用程序孤島,其「內聯」應用程序類型。但是,如果您希望訪問者能夠輕鬆地在網頁之間切換,則需要確保這些內容輕而且快速。這可能會限制你可以做的事情......你可能想看看qooxdoo的Showcase示例應用程序,它看起來相當「page'ish」,但實際上是一個單一的(內聯)應用程序(http://preview.tinyurl.com/ 3yzbayw)。 – ThomasH 2010-07-02 10:57:45

+0

感謝您明確指出,我可以將qooxdoo與其他網頁內容「串聯」。我之前看過示例頁面,並且對應用程序的外觀很漂亮,印象深刻。 – Steve 2010-07-02 21:03:47

4

您必須記住,HTML中的T代表文本。 HTML旨在顯示文檔。 JavaScript爲這些文檔添加了交互性。這被「顛倒過來」(在某種程度上)達到了一個程度,JavaScript被用來創建操縱DOM對象的類似桌面應用程序的體驗。

如今,如果你看一下網絡應用程序,主要有三個類別:

  1. 網站
    這些應用基本上是內容/文獻傳遞服務。您可以瀏覽,搜索,編輯和發佈一些文檔。基本上就是這樣。 stackoverflow是這個類別的一個很好的例子。
  2. 網絡接口
    這樣的應用程序提供了一個web前端實際運行在服務器上的應用程序。它們充當運行在服務器上的業務邏輯的接口。網上銀行應用程序就是一個很好的例子,或者用於不同類型服務的網絡接口。在某種程度上,傳統的谷歌頁面是。
  3. RIAs
    這些應用程序完全在客戶端上運行。他們從服務器獲取數據並提供用戶界面,該界面允許在客戶端正確操作該數據,並可能提交進度/結果。

當然,有些應用程序無法僅歸入其中一類。
現在對於網站來說,出於多種原因生成語義,乾淨和有效的HTML是非常重要的。搜索引擎優化和可訪問性是最重要的。
對於Web界面和RIA,並非如此。在這裏,在客戶端,最重要的是可用性。對於網頁界面來說,最好避免整個頁面刷新,並最大限度地方便用戶輸入。對於RIA來說,這是必須的。這兩個類別都不使用HTML來表示文檔,而是使用HTML來構建用戶界面。 對於Web界面,古典形式可能會訣竅,具體取決於用戶輸入的複雜性,因此您可以將它們視爲網站或RIA作爲此考慮因素。雖然網站使用HTML來表示實際數據,CSS定義其視覺外觀和JavaScript以添加交互性,但Web界面和RIA使用DOM對象來創建用戶界面和CSS,以實現客戶端業務邏輯。

所以,雖然你使用的平臺是一樣的,但你確實在做一些完全不同的事情。把它想象成文本模式。屏幕上的字符可能代表文字,或GUI elements。 (我想這個比喻中的Web界面應該是命令提示符:D)。

像qooxdoo和sproutcore這樣的框架旨在促進RIA的創建。由於DOM在這種方法中被誤用,它們提供了必要的抽象以在UI邏輯和底層DOM操作之間建立橋樑。他們無視HTML和CSS的需求,因爲這些工具不是用來創建交互式UI的工具。

根據你打算做什麼,你將不得不選擇一個合適的工具。