考虑到
为什么你喜欢一个而不是另一个?
我会尽量补充我的信息。
据我所知,Google Closure 不仅是另一个 JS 库,而且是一组允许您优化 JS 代码的工具。使用 jQuery 可以提供很好的工具和轻量级库,但它不会缩小您自己的代码。闭包编译器会的。封闭检查员也可能很有用,因为有时缩小的代码与原始代码有不同的行为,而且调试起来很麻烦。它集成了 纵火犯和支持单元测试,这两者都是当今开发人员最好的朋友。
我猜想任何一个新的库与一个已经建立的库相比,它都缺乏 jQuery 所拥有的大量扩展和教程。不过,在谷歌的推动下,支持和可靠性应该都会相当不错。目前的 文件和 教程看起来都很不错。
然而,Closure 的特性看起来还不错,它的模块化架构也很有前途。我猜 Google 已经在内部使用它很长一段时间了,这意味着你可以期待所有的基本功能(甚至更多)都可以实现,而且可能是以一种非常优化和可扩展的方式。他们试图将其表示为 JavaScript 的 STL,因此他们应该对其进行优化。
在更仔细地研究了这些特性之后,与现有的 jQuery 库相比,这似乎是 Web 应用程序开发的一个进步。它可能有利于 Google 的内部发展,但是像检测在线状态(参见 Goog.events OnlineHandler) ,在浏览器历史中容易地集成 AJAX 请求和 JS 操作(参见 很好,历史) ,或者他们提供的大量伟大的小工具(参见 Goog.ui 软件包)可能会帮助我们所有人构建更棒的网络应用程序;!
它附带了与 Java 集成的 模板功能(谁说是 GWT了?)因此,这也可能是另一个加上闭幕。
最后,它看起来非常容易使用。语法可能比简短的 $jQuery 函数稍微冗长一些,但是对于 IDE 和自动完成,这不是一个真正的问题。此外,我认为我们可以期待像 Eclipse 这样的 IDE 的良好集成来自 Google。
编辑: 按照要求,让我就 GWT 参考说几句话。Google Web Toolkit 是一个允许创建支持 Ajax 的 web 接口的 Java 库,它可以生成(并优化)所需的 JavaScript 代码。由于 Google Closure 允许创建既可以用于客户端又可以用于服务器端的模板(使用 JavaScript 和 Java) ,我猜测很快就可以联合使用它们(如果还没有这种情况的话)。
Google 闭包库允许您编译和优化 JavaScript。它不像 jQuery 那样是一个库。JQuery 为您提供了一些函数,这些函数允许您更快地编写自己的 javascript。
GoogleClosure 将帮助您最小化自己的 javascript 代码,以便在互联网上更快地交付。
长话短说,Google Closure 是一个工具,而 jQuery 是一个类似 Prototype 的库。
也许我没有得到 jQuery,但我还没有看到一个真正的 UI widgets 集合(有插件,是的,但你永远不知道他们是如何测试良好,往往没有明确的赢家和/或插件缺乏文档)。
Closure 除了其他功能之外,还有 小部件收藏(参见 demos 选项卡) ,比如说,包括在 gmail 中使用的 没有图像的按钮。
更一般地说,作为版本的一部分,它有更多的功能实现。这可能不是一个大问题,但是当我在寻找像 ajax 历史模块或自动完成这样简单的东西时,我对 jQuery 插件的海洋感到恼火。
总的来说,它是一个庞大的库 + 工具集,我将逐渐熟悉它,只是为了了解可用的工具。
在我对 API 的简要介绍中,我发现 jQuery 和 Closure 之间的差异是惊人的。
JQuery 基本上只是一种简化的方法,用于以跨浏览器的方式执行许多频繁的操作。
闭包是一个非常新的框架,例如,它们提供了跨浏览器使用 <canvas>标记的方法,并且添加了新的事件。
<canvas>
所以,这增加了我们通常使用 javascript 所做的事情,它们采用了许多人们想要做的操作,并将它们放入 API 中。
例如,它们有一个事件来告诉联机状态是否已更改。这样你就能知道系统是否在线。
它们有使用诸如 Google Gears 这样的工具的 Javascript 函数,它们扩展了 Javascript 的功能。
我需要几天的时间来消化所有的变化,但是我可以看到这会对可以开发的 web 应用程序产生很大的影响。
我刚刚发布了一篇非常详尽的关于 Google Closure 的文章,在 在 RIA 内部上回答了这个问题。
... 关闭规则! ^ _ ^
编辑 : 看看 这个 Youtube 视频,它可能会更好地回答一些关于 Google Closure 的问题。
也许最好的信息来源的谷歌关闭是项目 讨论小组,维基,文档页面,演示和尚未完成的 作者: Michael Bolin,现在可从 Safari 图书网站。
有一件事我可以马上告诉你-有一个更陡峭的学习曲线为 closure对 jQuery,但它可能是值得的,因为这个库的巨大,清晰的组织和好处,使用它与编译器和模板工具一起使用。
closure
jQuery
在这方面,closure文库更像 dojo而不是 jQuery,而且一些概念是从 dojo中借用的,迈克尔 · 博林说。
dojo
Google 闭包编译器使用 JSDoc文档系统,同时(如果由程序员正确创建)提供文档,并支持在编译时捕捉许多错误。
JSDoc
虽然函数名比 jQuery更冗长,但编译器会缩小代码(使用各种优化策略) ,而类型检查将节省大量调试代码的时间,因此输入较长的名称可能不是问题。同时,较长的名称增加了可读性。
库支持以离奇模式运行的浏览器,这样其他站点就可以使用“离奇”html 嵌入脚本
程序库使用(但不依赖)名为 soy的 javascript 模板系统,该系统简化了用内容填充文档的过程。
soy
像 jQuery谷歌 closure允许遍历结构与字符串为基础的查询使用专用组件的库。
closure库依赖于更像 Java的点分隔名称空间——这是一个非常强大的组织特性。
Java
使用这样的名称空间会在未编译的代码中产生开销,但是在编译的代码中,这些东西会被替换为短的变量名。
我很欣赏 Google 对开源社区的大部分贡献,我确信它有一些很酷的东西,但总的来说,我发现 Closure 体积庞大,过度紧张,而且不够优雅。如果你一定要把所有东西都变成 Java 的话,我想它绝对是非常漂亮的。
编辑:
好吧。我真的没有比较。关闭就像一个巨大的仓库,里面有你想要的所有可能的工具,在某个地方。有点像。NET 或者大规模的 Java 库。一旦你找到你需要的东西,你就可以找到高度特殊的东西,做高度特殊的工作。然后为了生产,你可以去除所有的凹凸不平。
另一方面,jQuery 是一个更容易修改的音速螺丝起。
闭包库的最大优点是为闭包编译器设计的。这为 JavaScript 开发打开了全新的可能性... ..。
编译器有几个很酷的特性:
详情请看: Http://blog.klokantech.com/2010/12/closure-compiler-for-openlayers-3x.html