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

时间:2011-12-10 08:49:36

标签: javascript jquery jquery-ui gwt google-closure

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

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

所以在这里我有点困惑我应该使用jquery / jquery ui或Google闭包还是GWT。

我熟悉jquery,我为此工作了很多,但是对于GWT& Google Closure这是我的第一次。

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

所以请向我推荐专业人士所有这三者在浏览器兼容性,易于理解,代码维护,丰富的支持等方面都有所帮助。

- 提前谢谢

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

3 个答案:

答案 0 :(得分:24)

我认为这取决于您想要创建的网站类型 GWT可能最适合所谓的SOUI(面向服务的用户界面)和SOFEA(面向服务的前端架构)。
在GWT Web应用程序中,您有一个HTML主机页面,由后端提供,所有UI工作流程和flow synchronisation由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可能是一个更好的解决方案。

答案 1 :(得分: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美分值。

答案 2 :(得分:3)

Closure Library优于jQuery的主要优点是可以利用Closure Compiler(在高级模式下)。您可以获得原始javascript的快速编辑/调试周期,以及一个公平大小的代码库,您的客户只需等待您实际使用的代码(假设您已编译它)。

对于GWT,利用“开发模式”来避免编译是值得的。