当前位置:  开发笔记 > 编程语言 > 正文

Google Closure Library通过jQuery提供什么?

如何解决《GoogleClosureLibrary通过jQuery提供什么?》经验,为你挑选了6个好方法。

考虑到

商业背景

社区支持

可用的扩展

默认的一组功能

使用简单

和可靠性

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



1> Wookai..:

我会尝试添加我的信息.

不仅仅是另一个JS lib

据我了解,Google Closure不仅是另一个JS库,而且它也是一组允许您优化JS代码的工具.使用jQuery为您提供了很好的工具和轻量级的库,但它并没有缩小您自己的代码.该Closure编译器会.所述闭合检查员也可以是有用的,因为有时精缩码具有比原始一个不同的行为,并且是疼痛调试.它集成了Firebug和支持单元测试,这些测试都是开发人员现在最好的朋友.

文档

我想,随着任何一个新的库VS一个成熟的库,它将缺乏jQuery的大量扩展和教程的可用性.然而,被Google推动应该确保支持和可靠性都非常好.目前的文档和教程看起来都非常好.

特征

但是Closure的功能看起来不错,其模块化架构也很有前途.我猜Google已经在内部使用了很长时间,这意味着您可以期望实现所有基本功能(以及更多),并且可能以非常优化和可扩展的方式实现.他们试图将它作为JavaScript的STL呈现,所以他们应该对它进行优化.

在仔细研究这些功能之后,与现有的jQuery库相比,这似乎是Web应用程序开发的一个进步.它认为它有利于谷歌的内部发展,但有一些事情,比如检测在线状态(参见goog.events.OnlineHandler),在浏览器历史记录中轻松集成AJAX请求和JS操作(请参阅goog.History),或大量小部件他们提供(参见goog.ui包)可以帮助我们所有人构建更加精彩的webapps;)!

它带有与Java集成的模板功能(谁说GWT?),所以这也可能是Closure的另一个好处.

便于使用

最后,它看起来很简单.语法可能比短$ jQuery函数更冗长,但是对于IDE和自动完成,它不是一个真正的问题.而且,我认为我们可以期待在像Eclipse这样来自Google的IDE中进行良好的集成.

编辑:根据要求,让我谈谈GWT参考.Google Web Toolkit是一个Java库,允许创建支持AJAX的Web界面,并生成(并优化)所需的JavaScript代码.由于Google Closure允许创建可以在客户端和服务器端使用的模板(使用JavaScript和Java),我的猜测是很快就可以联合使用它们(如果不是这样的话).


批评不是FUD,感谢链接.批评的重点是javascript代码在各处都不是最优的.这可能是有效的,但它错过了更大的一点.据我了解,Closure目标非常复杂的JS应用程序(在GMail的规模上),并且有一些后果 - 例如并非每一行都是最佳的,因为一切都不是由一个聪明的编码器编写的.但相反,它可能会进一步扩展为软件工程框架.
详细而有意义的答案,谢谢.你能解释一下GWT的含义吗?我恐怕没有那个.
@nalpy根据评论的建议,本文没有提到图书馆有一个编译器(不是缩小器)可以优化这些编码问题.

2> James Black..:

在我简要介绍API的过程中,我发现jQuery和Closure之间的区别非常明显.

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

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

因此,这增加了我们通常使用javascript做的事情,他们正在进行许多人们想要做的操作并将它们放入API中.

例如,他们有一个事件来判断在线状态是否已经改变.因此,您可以判断系统是否在线.

它们具有使用Google Gears等工具的javascript函数,这些函数继续使用Javascript可以扩展的功能.

我需要花费几天时间来消化所有更改,但我可以看到这可能对可以开发的Web应用程序产生重大影响.



3> 小智..:

Closure Library的最大优点是专为Closure Compiler设计.这为JavaScript开发开启了全新的可能性......

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

它将可读的JavaScript编译成压缩的机器可读JavaScript - 它在"高级"模式下具有最佳压缩率.

与JSDoc标签代码的文档是很重要的:编译器读取它,你编译在文档中的拼写错误得到警告,错误使用@constructor的,错误变量的类型,字段的滥用标注有@private和@protected,等等

如果您编写可重用的JavaScript库(例如OpenLayers或Google Maps),则可以正式导出公共API - 编译器会优化您的内部代码.

最终应用程序可以与库一起编译 - 然后从生成的代码中删除库的未使用部分.依赖关系由编译器自动解决.

编译器接受常量来删除不需要的功能 - 这允许仅针对特定浏览器(如Mobile WebKit)进行编译,仅针对Quirks模式或严格模式之一进行编译,不支持IE6编译等.

即使对于源代码的编译版本,也可以使用FireBug进行调试.

编译器支持生成可动态加载的模块,这可以显着加快最终应用程序的加载速度,因为只有在需要时才能加载高级功能的代码.

详情请看:http: //blog.klokantech.com/2010/12/closure-compiler-for-openlayers-3x.html



4> Evgeny..:

编辑:看一下这个youtube视频,它可以更好地回答一些关于Google Closure的问题.

关于谷歌关闭的最佳信息来源可能是项目讨论组,维基,文档页面,演示以及Michael Bolin尚未完成的书籍,现在可从safari书籍网站获得.

我可以立刻告诉他一件事 - 对于closurevs 有一个更陡峭的学习曲线,jQuery但由于图书馆的广阔性,清晰的组织以及与编译器和模板工具一起使用它的好处,它可能是值得的.

closure根据迈克尔·博林的说法,这方面的图书馆更像dojojQuery,并且借鉴了一些概念dojo.

谷歌闭包编译器使用JSDoc文档系统,它同时(如果程序员正确创建)提供文档并在编译时捕获许多错误.

虽然函数名称比jQuery's 更冗长,但编译器会缩小代码(使用各种优化策略),类型检查将节省相当多的时间来调试代码,因此输入较长名称的时间可能不是问题.同时更长的名称增加了可读性.

库支持以怪异模式运行的浏览器,以便其他站点可以使用"quirky"html嵌入脚本

库使用(但不依赖于)一个调用的javascript模板系统soy,简化了用内容填充文档.

jQuerygoogle closure允许使用库的专用组件遍历基于字符串的查询的dom结构.

closure库更依赖于点分隔的命名空间Java- 一个非常强大的组织功能.

使用这样的命名空间会在未编译的代码中产生开销,但在编译的代码中,这些东西会被短变量名替换.



5> 小智..:

我刚刚发布了一篇关于Google Closure的非常详尽的文章,它在insideRIA上回答了这个问题.

......关闭规则!^ _ ^


与jQuery很好地比较:"[...] jQuery工作得非常好,并且可以毫不费力地快速完成可能很棒的事情,所以Closure的"承诺"不是提供更好的算法,而是更好的,*有组织且可维护的部署JavaScript应用程序的方式*[...] Closure中的编码意味着考虑面向对象的原则,创建几个js文件,每个文件代表一个类,将应用程序体系结构组织成包,最后使用提供的工具,获取单个,压缩且安全的JavaScript文件[...]"

6> Nickolay..:

也许我没有得到jQuery,但我还没有看到真正的UI小部件集合(有插件,是的,但你永远不知道他们是多么经过测试,而且通常没有明显的赢家和/或插件缺乏文档).

Closure除其他外还有一个小部件集合(参见演示选项卡),包括gmail中使用的无图像按钮.

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

总的来说,这是一个庞大的图书馆+工具集,我会熟悉它只是为了知道什么是可用的.


我使用过jQueryUI,我认为它非常弱.它甚至似乎都没有发展.最后一次添加新窗口小部件的时间是什么时候.它可能是正式的小部件集合,但是任何寻找与jQuery一起使用的小部件的人最好只是谷歌搜索第三方jQuery小部件.
jqueryui.com是官方的ui小部件集合
jQueryUI不仅仅是一组javascript小部件,它还有一个很棒的css框架.它是CRD /管理页面样式的一个很好的工具.加上许多关闭"Widgets"在jQuery中都是1-2个衬里,甚至不值得为它们编写插件.
JQuery的吸引力不是预先制作的小部件.它以创纪录的时间制作您自己的自定义小部件.我很少接触插件,包括UI.
推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有