【问题标题】:How is something like Sproutcore/Qooxdoo helpful?Sproutcore/Qooxdoo 之类的东西有什么帮助?
【发布时间】:2011-03-09 16:43:36
【问题描述】:

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

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

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

或者,

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

欢迎对初学者提出任何建议!

【问题讨论】:

    标签: web-applications javascript-framework qooxdoo sproutcore


    【解决方案1】:

    您必须记住,HTML 中的 T 代表文本。 HTML 旨在显示文档。 JavaScript 为这些文档增加了交互性。这在某种程度上是“变态”的,在这种情况下,JavaScript 被用来创建类似于桌面应用程序的操作 DOM 对象的体验。

    如今,如果您查看网络应用程序,则主要分为三个类别:

    1. 网站
      此类应用程序基本上是内容/文档交付服务。您可以浏览、搜索、编辑和发布一些文档。基本上就是这样。 stackoverflow 就是这个类别的一个很好的例子。
    2. 网络界面
      此类应用程序为实际在服务器上运行的应用程序提供 Web 前端。它们充当在服务器上运行的业务逻辑的接口。网上银行应用程序就是一个很好的例子,或者是用于不同类型服务的 Web 界面。在某种程度上,经典的谷歌页面是。
    3. RIA
      这些应用程序完全在客户端上运行。它们从服务器获取数据并提供用户界面,允许在客户端直接操作数据并可能提交进度/结果。

    当然,有些应用不能仅归入其中一种类别。
    现在对于网站来说,出于多种原因,生成语义、干净和有效的 HTML 非常重要。搜索引擎优化和可访问性是最重要的。
    对于 Web 界面和 RIA,情况并非如此。在这里,在客户端,最重要的是可用性。对于 Web 界面,最好避免整个页面刷新并最大限度地促进用户输入。对于 RIA,这是必须的。这两个类别都不使用 HTML 来表示文档,而是构建用户界面。 对于 Web 界面,根据用户输入的复杂性,经典表单可能会起到作用,因此您可以将它们视为网站或 RIA。

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

    因此,尽管您使用的平台是相同的,但您所做的却是完全不同的事情。把它想象成文本模式。屏幕上的字符可能代表文本,或GUI elements。 (我想在这个类比中,Web 界面将是命令提示符 :D)。

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

    根据您打算做什么,您必须选择合适的工具。

    【讨论】:

      【解决方案2】:

      这是从 qooxdoo 角度的答案:

      我能否轻松重用一个应用程序中的代码 进入另一个?

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

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

      我不确定你的意思。

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

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

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

      这在很大程度上取决于您的背景。如果您对 OO 有很好的了解,甚至可能使用过 Qt 或 Swing 等 OO 接口库,那么选择 qooxdoo 应该非常简单。在这种情况下,我认为与 html/css/javascript 相比,学习工作量要少,因为您基本上是在针对一个 OO 类库工作,该类库对您屏蔽了底层技术。 (这是一件好事。例如,正确使用跨浏览器 CSS 是很困难的)。

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

      我会这么说。你为基础设施付出了代价。但是,如果您想要一个真正的 Web GUI,那就值得了。

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

      正如其他地方所说,这实际上取决于您想要实现的目标。从您的问题中,我了解到您不仅想要“显示数据库中的列表”,还想要一个具有高级小部件(日期选择器)、跨浏览器事件处理(自动完成)的交互式用户界面,可能还有其他控件、布局管理等。对于这种情况,我说利大于弊。

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

      【讨论】:

      • 我对某个项目感兴趣,但如果效果很好,我很可能会再次使用它。我不介意学习新技术。如上所述,我将创建一个小型网站,其中包含正常的 about、faq、home 等页面。在此内部将是包含应用程序的 Web 界面或 ria 区域。看来我需要确定我是否希望我的应用程序表现得像一个“升级的网站”(网络界面)或桌面应用程序(ria),然后做出我的选择。似乎无论哪种方式都可以制作非常好的应用程序?
      • 请注意,使用 Web 界面,您仍然拥有 Web 体验中最具破坏性的部分 - 页面更改。 qooxdoo 通过其“内联”应用程序类型支持普通页面上的应用程序孤岛。但是,如果您希望您的访问者在网页之间轻松切换,您需要确保这些网页轻巧且加载速度快。这在一定程度上限制了您可以做的事情...您可能想查看 qooxdoo 的 Showcase 示例应用程序,它看起来相当“页面式”,但实际上是单个(内联)应用程序 (preview.tinyurl.com/3yzbayw)。
      • 感谢您明确表示我可以将 qooxdoo 'inline' 与其他网页内容一起使用。我之前看过示例页面,并且对应用程序的简洁外观印象深刻。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-11
      • 1970-01-01
      • 1970-01-01
      • 2018-09-29
      • 2016-12-03
      • 1970-01-01
      • 2011-05-25
      相关资源
      最近更新 更多