我正在使用python,django构建企业Web应用程序。我最后决定使用哪个javascript库。我正在考虑使用Google的闭包库或YUI3。大多数开发,我都使用过jQuery。我可以使用jQuery快速编写代码,但似乎不适合企业使用。
YUI 3似乎很不错。它包括我想要使用的大多数小部件,但Closure库几乎完全相同。使用Closure库提供更好的服务是他们有Closure Compiler,但似乎Closure需要编写比YUI 3更多的代码。来自YUI 3的文档也非常好。
该应用程序适用于网络和移动设备,因此该库不应该在Android或iPhone等移动设备中中断。
如果你是我,你会做出什么决定?
答案 0 :(得分:7)
我主要是在企业环境中对jQuery的评论,因为我缺乏YUI的经验,所以我不能给出关于[不]在闭包上使用它的任何有意识的建议。
但由于缺乏任何其他答案,我将与Closure分享我的经验。
关于Closure库,我一直用于最后几个项目,但我绝不是专家,我只能说好事。
Library提供构建任何类型UI时所需的核心组件。但是,与jQuery不同,它没有数以万亿的“准备部署”插件脚本,或者有些人会说,没有包含电池。
它有基本的事件,控件,xhr,对话框,表单组件等,并且我的帐户最重要的是,命名空间(或者至少看起来像它们的东西......)。 / p>
有了这个,您可以创建自己的自定义UI,仅受您的想象力和JavaScript的强大功能(即使它确实有自己的烦恼,JS也是非常强大的语言)。
在Closure compiler的帮助下,它不仅缩小了代码,而且排除了所有未使用的代码,进行了类型检查,发出了对debuging有用的警告等等,它看起来像构建大型应用程序的坚实基础由任何规模的团队组成。
在我看来,在企业项目中使用Closure over jQuery的主要原因是一致性。插件很棒但是它们往往包含所有级别的不一致性,无论是编程实践,视觉样式和结构,性能,用法,您都可以命名。删除大型项目中的这些小的不一致可能会浪费很多时间。
总而言之,如果你有大型项目需要自定义UI和很多灵活性,Closure是适合这项工作的工具。有了“命名空间”,它甚至感觉都是Python。
P.S。我们还在服务器端使用Django。
答案 1 :(得分:4)
您已经触及了这里的大多数重要方面,类型检查,缩小,命名空间,但我想补充一些。除此之外,它们还提供模板化解决方案,不仅速度快,而且具有全面的国际化支持,可与图书馆混合使用。它还可以编译为java代码,因此您可以从同一模板在服务器和客户端上进行渲染。 然后是组件架构,它有一个完整的生命周期,从组件中分离渲染器(如果你熟悉swing或flex你会得到这个想法),它有两个模型,一个是客户端渲染,另一个是装饰精美地与服务器端渲染一起。
测试解决方案已经明确定义,现在是 我们有成千上万行的javascript,没有关闭,这将是一个难以维护的混乱IMO。
答案 2 :(得分:2)
我会选择YUI 3.特别是如果你考虑Google的Closure的唯一原因是编译器。因为这在YUI 3中运行良好,压缩比YUI压缩器好得多。我确信它不会像Closure代码那样做得那么好,但这很难测试。
YUI 3中的模块化框架很棒,并且有足够的糖可以让你牙齿疼痛而不会太重。雅虎将它用于他们所有的网站,他们非常重视性能(所以它不是一件好事。)
答案 3 :(得分:0)
在我做的测试中,Google Advanced Compress更好,并且在雅虎之后! YUI压缩机。你可以在这里进行测试: http://jsperf.com/closure-vs-yui