考虑
为什么你喜欢一个而不是另一个?
答案 0 :(得分:176)
我会尝试添加我的信息。
据我所知,Google Closure不仅是另一个JS库,而且它也是一组允许您优化JS代码的工具。使用jQuery为您提供了很好的工具和轻量级的库,但它并没有缩小您自己的代码。 Closure compiler会。 closure inspector也可能有用,因为有时缩小的代码具有与原始代码不同的行为,并且很难调试。它集成了Firebug和支持单元测试,现在都是开发人员最好的朋友。
我想,正如任何一个新的库VS一个成熟的库,它将缺乏jQuery的大量扩展和教程的可用性。然而,被Google推动应该确保支持和可靠性都非常好。目前的documentation和tutorial似乎也非常好。
然而,Closure的功能看起来不错,其模块化架构也很有前途。我猜Google已经在内部使用了很长时间,这意味着您可以期望实现所有基本功能(以及更多),并且可能以非常优化和可扩展的方式实现。他们试图将它作为JavaScript的STL呈现,所以他们应该对它进行优化。
在仔细研究这些功能之后,与现有的jQuery库相比,这似乎是Web应用程序开发的一个进步。它认为它有利于谷歌的内部发展,但有一些事情,比如检测在线状态(参见goog.events.OnlineHandler),在浏览器历史记录中轻松集成AJAX请求和JS操作(参见goog.History),或者他们提供的优秀小部件(请参阅goog.ui package)可以帮助我们所有人构建更加精彩的Web应用程序;)!
它附带templates features与Java集成(谁说GWT?),所以这也可能是Closure的另一个好处。
最后,它看起来很简单。语法可能比短$ jQuery函数更冗长,但是对于IDE和自动完成,它不是一个真正的问题。此外,我想我们可以期待在像Eclipse这样来自Google的IDE中实现良好的集成。
编辑:根据要求,让我谈谈GWT参考。 Google Web Toolkit是一个Java库,允许创建支持AJAX的Web界面,并生成(并优化)所需的JavaScript代码。由于Google Closure允许创建可以在客户端和服务器端使用的模板(使用JavaScript和Java),我的猜测是很快就可以联合使用它们(如果不是这样的话)。
答案 1 :(得分:30)
在我简要介绍API的过程中,我发现jQuery和Closure之间的区别非常明显。
jQuery基本上只是一种以跨浏览器方式进行许多频繁操作的简化方法。
Closure是一个非常新的框架,因为它们提供了一种跨浏览器的方式来使用<canvas>
标记,例如,他们添加了新事件。
因此,这增加了我们通常使用javascript做的事情,他们正在进行许多人们想做的操作并将它们放入API中。
例如,他们有一个事件来判断在线状态是否已经改变。所以你可以判断系统是否在线。
他们拥有使用Google Gears等工具的javascript函数,这些函数继续扩展了Javascript的功能。
我需要花费几天的时间来消化所有更改,但我可以看到这可能对可以开发的Web应用程序产生重大影响。
答案 2 :(得分:25)
Closure Library的最大优点是专为Closure Compiler设计。这为JavaScript开发开启了全新的可能性......
编译器有几个很酷的功能:
详细信息请看: http://blog.klokantech.com/2010/12/closure-compiler-for-openlayers-3x.html
答案 3 :(得分:20)
修改:看看this youtube video它可能会更好地回答有关Google Closure的一些问题。
关于谷歌关闭的最佳信息来源可能是项目discussion group,wiki,doc页面,演示以及尚未完成的book by Michael Bolin,现在可以从safari书籍网站获得。
我可以马上告诉你一件事 - closure
与jQuery
的学习曲线比较陡峭,但由于图书馆的广阔性,清晰的组织和使用它的好处,这可能是值得的。与编译器和模板工具一起使用。
closure
库在这方面更像dojo
而不是jQuery
,而且有些概念是从dojo
借来的。
JSDoc
文档系统,它同时(如果程序员正确创建)提供文档并在编译时捕获许多错误。
虽然函数名称比jQuery
更冗长,但编译器会缩小代码(使用各种优化策略),并且类型检查将节省大量时间调试代码,因此输入更长名称的时间是可能不是问题。同时,较长的名称增加了可读性。
库支持以怪癖模式运行的浏览器,以便其他网站可以使用“quirky”html嵌入脚本
库与(但不依赖于)一个名为soy
的javascript模板系统一起工作,简化了用内容填充文档。
与jQuery
类似,Google closure
允许使用库的专用组件遍历基于字符串的查询的dom结构。
closure
库更依赖于点分隔的命名空间,更像Java
- 一个非常强大的组织功能。
使用这样的命名空间会在未编译的代码中产生开销,但在编译的代码中,这些东西会被短变量名替换。
答案 4 :(得分:8)
我刚刚发布了一篇关于Google Closure的详尽文章,该文章在insideRIA上回答了这个问题。
......关闭规则! ^ _ ^
答案 5 :(得分:7)
也许我没有得到jQuery,但我还没有看到真正的UI小部件集合(有插件,是的,但你永远不知道他们是多么经过测试,而且往往没有明确的赢家和/或该插件缺少文档。)
Closure除其他外还有a widgets collection(参见演示标签),包括gmail中使用的imageless buttons。
更一般地说,它作为发布的一部分实现了更多功能。它可能不是一件大事,但当我正在寻找像ajax历史模块或自动完成这样简单的东西时,我对jQuery插件的海洋感到恼火。
总的来说,这是一个庞大的图书馆和一套工具,我会熟悉它,只是为了知道可用的东西。
答案 6 :(得分:1)
我很欣赏Google对开源社区的大部分贡献,我确信它有一些很酷的东西,但总的来说,我发现Closure笨重,过度紧张,不够优雅。如果你必须把所有东西都变成Java,我认为它是彻头彻尾的漂亮。
编辑:
足够公平。我没有真正比较。关闭就像一个巨大的仓库,你可能想要的所有工具......在某个地方。有点像.NET或大型Java库。找到所需内容后,您可以找到具有高度特定性的高度特定的工作。然后为了生产你可以删除所有的残余。
另一方面,JQuery更像是一款易于修改的声波螺丝刀。答案 7 :(得分:0)
Google Closure Library允许您编译和优化JavaScript。它不像jQuery那样的库。 jQuery是为您提供的功能,允许您更快地编写自己的JavaScript。
Google Closure可以帮助您将自己的javascript代码最小化,以便通过Internet更快地交付。
长话短说,Google Closure是一个工具,而jQuery是一个类似于Prototype的库。