5

我正在使用 python、django 构建企业 Web 应用程序。我的最终决定是使用哪个 javascript 库。我正在考虑使用 Google 的闭包库或 YUI3。大部分的开发,我都使用 jQuery。我可以用 jQuery 快速编码,但似乎不适合企业使用。

YUI 3 看起来还不错。它包含了我想使用的大多数小部件,但 Closure 库的功能几乎相同。Closure 库更好的提供是他们有 Closure Compiler,但似乎 Closure 需要编写比 YUI 3 更多的代码。来自 YUI 3 的文档也非常好。

该应用程序将适用于网络和移动设备,因此该库不应在 Android 或 iPhone 等移动设备中中断。

如果你是我,你会做出什么决定?

4

4 回答 4

7

免责声明

我主要参考企业环境中关于 jQuery 的评论,由于我缺乏 YUI 方面的经验,所以我无法给出任何有意识的建议,让 [不] 使用它而不是 Closure。

但是在没有任何其他答案的情况下,我将分享我使用 Closure 的经验。


闭包库

至于 Closure 库,我在最近的几个项目中一直在使用它,但我绝不是它的专家,我只能说好话。

库提供了构建任何类型的 UI 时所需的核心组件。但是,与 jQuery 不同的是,它没有附带数以万亿计的“准备部署”插件脚本,或者如某些人所说,不包括电池。

它有基本的事件、控件、xhr、对话框、表单组件等,我认为最重要的是命名空间(或者至少看起来像它们的东西......)。

有了这个,您可以创建自己的自定义 UI,仅受您的想象力和 JavaScript 的力量的限制(而 JS 是非常强大的语言,即使它确实有自己的烦恼)。

在Closure 编译器的帮助下,它不仅缩小了代码,而且排除了所有未使用的代码,进行类型检查,提供对调试有用的警告等等,它看起来像是由任何规模的团队构建大型应用程序的坚实基础。

在我看来,在企业项目中使用 Closure over jQuery 的主要原因是一致性。插件很棒,但它们往往在各个层面都存在不一致,无论是编程实践、视觉风格和结构、性能、用法,你都能想到。在大型项目中消除这些小的不一致可能会浪费大量时间。

所以总而言之,如果你有大型项目需要自定义 UI 和很大的灵活性,那么 Closure 是适合这项工作的工具。有了“命名空间”,它甚至感觉都是 Pythonish。

PS 我们也在服务器端使用 Django。

于 2011-09-29T21:51:12.277 回答
4

您已经触及了这里的大部分重要方面,类型检查、缩小、命名空间,但我想添加更多内容。除了他们提供的模板解决方案之外,它不仅速度超快,而且具有完整的国际化支持,它与库混合并压缩。它还可以编译为 java 代码,因此您可以从同一个模板在服务器和客户端上呈现。然后是具有完整生命周期的组件架构,将渲染器与组件分开,(如果您熟悉 Swing 或 flex 就会明白),它有两种模型,一种是客户端渲染,另一种是装饰与服务器端渲染一起精美。

测试解决方案定义明确,现在我们有成千上万行 javascript,如果没有关闭,IMO 将是一个无法维护的混乱。

于 2012-01-29T12:02:56.837 回答
2

我会选择 YUI 3。特别是如果您考虑 Google 的 Closure 的唯一原因是编译器。因为这在 YUI 3 中运行良好,压缩比 YUI 压缩器好得多。我确信它不会像使用 Closure 代码那样做得好,但这很难测试。

YUI 3 中的模块化框架很棒,有足够的糖来让你牙痛而不会太重。雅虎在他们的所有网站上都使用它,并且他们非常重视性能(所以它不会全是坏的)。

于 2011-09-27T23:44:41.037 回答
0

在我做的测试中,Google Advanced Compress 更好,在 Yahoo! 之后 YUI 压缩机。您可以在这里进行测试:http: //jsperf.com/closure-vs-yui

于 2013-01-17T21:00:35.200 回答