Jquery vs Google Closure va GWT用于大型Web应用程序开发的优缺点

Pee*_*ush 14 javascript jquery gwt jquery-ui google-closure

我即将开始开发一个大型Web应用程序.它包含媒体(视频,音频和图像)和庞大的用户群.

网站上的流量也可能非常高.

所以在这里我有点困惑,我应该使用jquery/jquery ui或谷歌闭包或GWT.

我对jquery很熟悉并且我为此工作了很多但是对于GWT和Google Closure这是我的第一次.

我也很熟悉java,所以我可以使用GWT,但我已经提到过这是我第一次使用GWT.

所以请在跨浏览器兼容性,易于理解,代码维护,丰富的ui desing支持等方面向我推荐所有这三者的优缺点.

-提前致谢

如果这个问题重复一些,只需发布​​链接.

Ümi*_*mit 24

我认为这取决于你想要创建什么样的网站.
GWT可能最适合所谓的SOUI(面向服务的UI)和SOFEA(面向服务的前端架构).
在GWT Web应用程序中,您有一个由您的后端提供的HTML主页,并且所有UI工作流和流同步都在GWT的客户端完成.因此,如果您想要实现类似应用程序的桌面,GWT可能是您的最佳选择,因为它是一个很棒的工具包,可以开发复杂的桌面应用程序,并提供JAVA开发的所有优势(测试,重构等).

对于"传统的"web 2.0ish网站,GWT可能不是最佳选择,因为它确实具有比JS框架(jQuery,dojo等)更大的学习曲线.
此外,这些网站有多个页面,Javascript用于UI增强,而不是完全接管流同步,只是使页面更具交互性.对于这些网站,您通常有一个良好的后端(Grails,Spring MVC)负责流程同步,而JS框架只负责使UI更具交互性和一些UI更改.

这种网站的一个例子是stackoverflow.如果单击链接,则会加载新的HTML页面.如果您单击收件箱链接,它将使用jQuery打开弹出窗口并检索您的通知并显示它们.

Google Closure可能更接近jQuery而不是GWT.我认为Google Closure的最大卖点是客户端和服务器端HTML模板.我对Google Closure没有多少经验,但谷歌大量使用它来处理他们的网络应用程序.

因为我主要在GWT工作,所以我可以考虑一下GWT的优点和缺点:

优点:

  • 强大的工具包
  • 开发工具(测试,重构,eclipse,实时调试)
  • 开箱即用的跨浏览器兼容性(有一些警告)
  • 第三方库的可用性(DTO序列化,MVP框架等)
  • 只有使用的代码才会下载到客户端(即使你只使用一个特定的函数,也可以使用JS框架下载整个框架)
  • GWT-RPC和RequestFactory用于与JAVA后端通信(无需自行序列化或反序列化).

缺点:

  • 更大的学习曲线
  • 可能不适合小型UI增强功能
  • 如果代码库很大并且必须支持不同的浏览器和语言,则编译可能需要一些时间
  • 生成的Javascript在复杂的应用程序中会变得很大(解决方案:代码拆分)

作为旁注:对于每个新的GWT版本,由于每个新的GWT版本在编译时间和代码大小方面都有所改进,因此缺点不再是问题.GWT 2.5应该在这方面有一些非常好的增强功能.

总结一下:如果你想开发像交互式网络应用程序这样的桌面,我认为GWT可能是你的最佳选择.
但是,如果你想开发一个更传统的"web 2.0ish"网站,jQuery/Google Closure可能是一个更好的解决方案.


Bob*_*har 6

GWT将所有Java IDE的优点带到了JavaScript开发的基础上.与JQuery一样,GWT为您"规范化"浏览器,因此您通常不必进行用户代理检查或任何其他操作.Java IDE的优点在于您对更改名称,包装,方法签名以及各种内容的可靠重构支持.自从我完成GWT以来已经过去2年了,但我认为它的缺点,特别是在大型项目上,是编译步骤.它并不快,特别是当您放松编译每个浏览器的所有Java时.如果我没记错的话,如果它今天仍然如此,它会为IE,FireFox,Chrome,Opera和Safari中的每一个产生非常大的JavaScript文件.这需要时间,我的朋友.这里有一个单元测试框架,虽然比纯Java对应框架慢,但它很有趣.

GWT的好处:通过Java IDE生态系统提供强大的工具支持.GWT责任:编制时间

我不太了解JQuery,除了它似乎已经破解了浏览器兼容性cookie,允许您,公平的开发人员,专注于您的应用程序.我对JQuery的了解是它似乎有开发人员的想法.我,不是JavaScript专家,设法将JQuery集成到我的Java webapp中,并添加一个名为imgPreview的图像预览"插件"(http://james.padolsey.com/javascript/new-jquery-plugin-imgpreview/)一天下午约30分钟,弹出图像预览到我平淡无奇的基于表格的用户界面.浏览器在过去的两年中也已经成长,现在你可以在控制台中实时动态调试你的JavaScript(Chrome摇滚为此,但在FireFox和Safari中基本相同),以及调整样式和做各种直接的DOM操作.

JQuery的好处:直接使用JavaScript而没有解释和开发人员对JQuery的责任:在Java应用程序级别附近的任何地方重构JavaScript都具有挑战性.

我的2美分价值.