代码之家  ›  专栏  ›  技术社区  ›  pestaa

谷歌关闭库在jquery上提供了什么?[关闭]

  •  189
  • pestaa  · 技术社区  · 15 年前

    考虑到

    • 业务背景
    • 社区支持
    • 可用扩展名
    • 默认功能集
    • 使用简单
    • 可靠性

    为什么你喜欢一个而不是另一个?

    8 回复  |  直到 12 年前
        1
  •  176
  •   Albireo    12 年前

    我将尝试添加我的信息。

    不仅仅是另一个JS库

    据我所知,Google闭包不仅是另一个JS库,而且是一组工具,可以让您优化JS代码。使用jquery可以为您提供良好的工具和轻量级的库,但它不会缩小您自己的代码。这个 Closure compiler 威尔。这个 closure inspector 可能也很有用,因为有时小型代码的行为与原始代码不同,调试起来很麻烦。它与 Firebug 并且支持单元测试,这两个都是开发人员现在最好的朋友。

    文档

    我想,任何新的库与成熟的库相比,都将缺乏jquery所具有的大量扩展和教程的可用性。然而,在谷歌的推动下,应该确保支持和可靠性都很好。电流 documentation tutorial 两个看起来都很好。

    特征

    不过,闭包的特性看起来不错,其模块化架构也很有前途。我猜谷歌在内部使用它已经很长时间了,这意味着你可以期望所有的基本功能(以及更多)都能被实现,并且可能以一种非常优化和可扩展的方式实现。他们试图将其呈现为JavaScript的STL,因此他们应该对其进行润色。

    在更仔细地研究了这些特性之后,与现有的jquery库相比,这似乎是Web应用程序开发的一个进步。它可能有利于谷歌的内部发展,但是像检测在线状态这样的事情(参见 goog.events.OnlineHandler ,在浏览器历史记录中轻松集成Ajax请求和JS操作(请参见 goog.History 或者他们提供的大量的小部件(见 goog.ui package )可能会帮助我们所有人构建更棒的webapps;)!

    它伴随着 templates features 与Java集成的(谁说) GWT ?)因此,这也可能是关闭的另一个好处。

    易用性

    最后,它看起来很容易使用。语法可能比简短的$jquery函数更冗长一些,但是有了IDES和自动完成功能,这不是真正的问题。此外,我想说,我们可以期望像Eclipse这样的IDE能够很好地集成在Google中。

    编辑:根据要求,让我说几句关于GWT参考的话。谷歌Web工具包是一个Java库,允许创建支持Ajax的Web界面,并生成和优化所需的JavaScript代码。由于谷歌闭包允许创建可以同时使用客户端和服务器端(使用JavaScript和Java)的模板,我猜想,它将很快可以联合使用(如果不是这样的话)。

        2
  •  30
  •   James Black    15 年前

    在我对API的简要介绍中,我发现jquery和闭包之间的区别是显著的。

    jquery基本上只是一种以跨浏览器方式执行许多频繁操作的简化方法。

    闭包是一个非常新的框架,因为它们提供了一种跨浏览器的方式来使用 <canvas> 例如,标记,它们添加了新事件。

    因此,这增加了我们通常使用JavaScript的功能,他们接受了许多人们想要做的操作,并将它们放入API中。

    例如,他们有一个事件来判断在线状态是否发生了变化。所以你可以判断系统是否在线。

    他们拥有使用诸如GoogleGears等工具的javascript功能,但事实上他们已经扩展了可以用javascript完成的工作。

    我需要几天时间来消化所有的变化,但我可以看到这可能会对可以开发的Web应用程序产生很大的影响。

        3
  •  25
  •   Petr Pridal    13 年前

    闭包库的最大优点是它是为闭包编译器设计的。这为JavaScript开发开辟了全新的可能性…

    编译器有几个很酷的功能:

    • 它将可读的javascript编译为 压缩机器可读 javascript-它有 最佳压缩比 在“高级”模式下。
    • 规范文件 使用jsdoc标记很重要: 编译器读取它,然后 编译错误时出现警告 在文档中,错误地使用 @构造函数,错误 A型 变量 ,误用带注释的字段 有@private和@protected等。
    • 如果编写可重用的javascript 图书馆,如Openlayers或谷歌地图,你 正式导出您的公共API-和 编译器优化您的内部 代码。
    • 最终应用程序可以 与图书馆合编- 然后是 从生成的库中删除库 代码。依赖关系已解决 由编译器自动执行。
    • 编译器接受要删除的常量 不需要的功能-这允许 仅为特定目的编译 浏览器,如Mobile Webkit,用于 只有一个怪癖模式或严格 模式,不支持编译 IE6等。
    • 使用Firebug进行调试是 即使对于已编译的 源代码的版本。
    • 编译器支持动态生成 可加载模块,可以 显著加快了 结束应用程序,因为 可以加载高级功能 只有在需要的时候。

    有关详细信息,请查看: http://blog.klokantech.com/2010/12/closure-compiler-for-openlayers-3x.html

        4
  •  20
  •   Evgeny    12 年前

    编辑 :看看 this youtube video 它可能会更好地回答一些关于谷歌关闭的问题。

    关于谷歌关闭的最好信息来源可能是项目 discussion group ,wiki,文档页面,演示和一个尚未完成的 book by Michael Bolin 现在可以从Safari Books网站获得。

    有一件事我马上就知道了——有一个更陡的学习曲线 closure VS jQuery 但是,由于库的庞大性、清晰的组织以及与编译器和模板工具一起使用的好处,它可能非常值得。

    关闭 图书馆在这方面更像 dojo JQuery 以及一些概念 道场 根据迈克尔·博林的说法。

    Google关闭编译器使用 JSDoc 同时(如果由程序员正确创建)提供文档并能在编译时捕获许多错误的文档系统。

    虽然函数名比 查询 编译器收缩代码(使用各种优化策略),类型检查将节省大量的代码调试时间,因此输入较长名称的时间可能不是问题。同时,较长的名称增加了可读性。

    库支持在quirks模式下运行的浏览器,这样其他站点就可以使用“quirky”html嵌入脚本。

    库使用(但不依赖)一个名为 soy 这简化了用内容填充文档。

    喜欢 查询 谷歌 关闭 允许使用库的专用组件通过基于字符串的查询遍历DOM结构。

    关闭 库依赖点分隔的命名空间,更像 Java -一个非常强大的组织特征。

    使用这样的名称空间会在未编译的代码中产生开销,但在已编译的代码中,这些内容将替换为短变量名。

        5
  •  8
  •   jwfearn    13 年前

    我刚刚发表了一篇关于谷歌关闭的非常详尽的文章,回答了这个问题 insideRIA .

    …关闭规则!^ ^ ^

        6
  •  7
  •   Community dbr    7 年前

    也许我没有得到jquery,但我没有看到一个真正的UI小部件集合(有插件,是的,但你永远不知道它们测试得有多好,而且经常没有明确的赢家和/或插件缺乏文档)。

    除其他外,关闭还有, a widgets collection (参见演示选项卡),包括,比如, imageless buttons 在Gmail中使用。

    更一般地说,作为发布的一部分,它实现了更多的功能。这可能不是一件大事,但当我在寻找像Ajax历史模块或自动完成这样简单的东西时,我会对大量jquery插件感到恼火。

    总的来说,它是一个巨大的库+一套工具,我将熟悉它,只是想知道有什么可用的。

        7
  •  1
  •   Erik Reppen    14 年前

    我很欣赏Google对开源社区的大部分贡献,我相信它有一些很酷的东西,但总的来说,我觉得关闭起来笨重、过度劳累和不雅。如果你必须把所有东西都变成Java,我想它是完全正确的。

    编辑:

    够公平的。我没有真正比较。关闭就像一个巨大的仓库,里面有你可能想要的所有工具…某处。有点像.NET或一个大型Java库。一旦你找到了你需要的,你就可以找到非常具体的工作。然后在生产中,你可以去除所有的积垢。

    另一方面,jquery更是一个易于修改的声波螺丝刀。

        8
  •  0
  •   Tereno    15 年前

    谷歌关闭库允许你编译和优化你的javascript。它不像jquery那样是一个库。jquery为您提供了一些函数,可以让您更快地编写自己的javascript。

    Google的关闭将帮助您最小化自己的javascript代码,以便在互联网上更快地交付。

    长话短说,谷歌闭包是一个工具,而jquery是一个类似于原型的库。