4

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

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

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

或者,

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

欢迎对初学者的任何建议!

4

2 回答 2

5

以下是从 qooxdoo 角度给出的答案:

我可以轻松地将代码从一个应用程序重用到另一个应用程序中吗?

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

您也可以轻松拥有一页静态页面吗?

我不确定你在这里的意思。

它们只有一页吗,有点像gmail?

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

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

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

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

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

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

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

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

于 2010-06-29T21:13:00.113 回答
4

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

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

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

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

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

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

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

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

于 2010-06-29T17:51:44.437 回答