我正在学习Python并构建我的第一个Web应用程序。我一直在通过django教程,并开始考虑如何做客户端。我希望它是web 2.0-ish,并且需要一些AJAX / javascript功能来显示数据库中的列表,以及诸如日期选择器,自动完成等等。
似乎html / css / javascript(尤其是jquery)是最受欢迎的选项。作为一个新手,我对像qooxdoo和sproutcore这样的框架很感兴趣,但是他们并不完全明白它们是如何工作的。例如:
或者,
使用/不使用的优点/缺点是什么 使用其中一个?
欢迎任何有关初学者的建议!
答案 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对象的类似桌面应用程序的体验。
如今,如果你看一下网络应用程序,有三个主要类别:
当然,有些应用程序无法归类为其中一种类别 现在,对于网站而言,出于多种原因,生成语义,干净且有效的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的工具。
根据您的意图,您必须选择合适的工具。