Sproutcore / Qooxdoo之类的东西怎么样?

时间:2010-06-29 15:15:51

标签: web-applications javascript-framework qooxdoo sproutcore

我正在学习Python并构建我的第一个Web应用程序。我一直在通过django教程,并开始考虑如何做客户端。我希望它是web 2.0-ish,并且需要一些AJAX / javascript功能来显示数据库中的列表,以及诸如日期选择器,自动完成等等。

似乎html / css / javascript(尤其是jquery)是最受欢迎的选项。作为一个新手,我对像qooxdoo和sproutcore这样的框架很感兴趣,但是他们并不完全明白它们是如何工作的。例如:

  1. 我可以轻松地将代码从一个应用程序重用到另一个应用程序吗?
  2. 您是否也可以轻松拥有一页静态页面?
  3. 他们只是一页,有点像gmail吗?这有关系吗?
  4. 它真的比不使用它更容易吗?我的意思是框架的学习曲线等于学习html / css / javascript?
  5. 这些类型的应用程序加载速度较慢,因为它们有很多开销吗?
  6. 或者,

      

    使用/不使用的优点/缺点是什么   使用其中一个?

    欢迎任何有关初学者的建议!

2 个答案:

答案 0 :(得分:5)

以下是qooxdoo观点的答案:

  

我可以轻松地重复使用一个应用中的代码吗?   进入另一个?

是的,你可以。您可以在“库”中组织代码,这些代码可以包含在多个应用程序中。但每个应用程序将是一个单独的整体(将其视为二进制文件库代码静态链接),没有手动复制.js文件。

  

你能有一页吗?   静态页面也很容易吗?

我不确定你的意思。

  

他们   只有一页,有点像gmail?

是的,您使用qooxdoo构建单页应用程序。

  

重要吗?是真的吗?   比不使用容易吗?我的意思是   框架的学习曲线   等于学习html / css / javascript?

这在很大程度上取决于你的背景。如果你对OO有很好的把握,甚至可能会遇到像Qt或Swing这样的OO界面库,那么选择qooxdoo应该非常简单。在这种情况下,我认为学习工作量与html / css / javascript相比要少,因为你基本上是在对付一个OO类库来保护底层技术。 (这是一件好事。例如,使用跨浏览器的CSS很难)。

  

这些类型的应用加载速度较慢   因为他们有很多开销?

我会这么说。您为基础设施支付罚金。但如果真正的Web GUI是您想要的,那就值得。

  

使用/不使用的优点/缺点是什么   使用其中一个?

正如其他地方所说,这实际上取决于你想要达到的目标。从你的问题我收集到你不只是想“显示数据库中的列表”,但你想要一个交互式用户界面,高级小部件(日期选择器),跨浏览器事件处理(自动完成),也许其他控件,布局管理等。对于这种情况,我说优点超过了缺点。

但这是一项投资,对于我所说的一次性项目来说太过分了。如果你只想要一些列表视图,坚持使用Django模板,可能会加入一些Javascript。

答案 1 :(得分:4)

你必须记住,HTML中的T代表文本。 HTML旨在显示文档。 JavaScript为这些文档添加了交互性。这在某种程度上是“变态的”(在某种程度上),其中JavaScript用于创建操纵DOM对象的类似桌面应用程序的体验。

如今,如果你看一下网络应用程序,有三个主要类别:

  1. 网站
    这些应用程序基本上是内容/文档传递服务。您可以浏览,搜索,编辑和发布一些文档。基本上就是这样。 stackoverflow就是这个类别的一个很好的例子。
  2. 网络界面
    此类应用程序向实际在服务器上运行的应用程序提供Web前端。它们充当在服务器上运行的业务逻辑的接口。在线银行应用程序就是一个很好的例子,或者用于不同类型服务的Web界面。经典的谷歌页面在某种程度上。
  3. 的RIA
    这些应用程序完全在客户端上运行。他们从服务器获取数据并提供用户界面,允许在客户端操作该数据并可能提交进度/结果。
  4. 当然,有些应用程序无法归类为其中一种类别 现在,对于网站而言,出于多种原因,生成语义,干净且有效的HTML非常重要。 SEO和可访问性是最重要的 对于Web界面和RIA,情况并非如此。在客户端,最重要的是可用性。对于Web界面,希望避免整个页面刷新并最大限度地方便用户输入。对于RIA来说,这是必须的。两个类别都不使用HTML来表示文档,而是使用HTML来构建用户界面。 对于Web界面,经典表单可能会起作用,具体取决于用户输入的复杂程度,因此您可以将它们视为网站或RIA作为考虑因素。

    虽然网站使用HTML来表示实际数据,但CSS用于定义其视觉外观和JavaScript以添加交互性,Web界面和RIA使用DOM对象创建UI,用于实现客户端业务逻辑的UI和JavaScript。

    因此,虽然您使用的平台是相同的,但您确实在做一些完全不同的事情。把它想象成文本模式。屏幕上的字符可能代表文字,或GUI elements。 (我想网络界面就是这个类比的命令提示:D)。

    像qooxdoo和sproutcore这样的框架旨在促进RIA的创建。由于DOM在这种方法中被滥用,它们提供了必要的抽象,以便在UI逻辑和底层DOM操作之间建立桥梁。它们消除了对HTML和CSS的需求,因为它们不是用于创建交互式UI的工具。

    根据您的意图,您必须选择合适的工具。