【问题标题】:Jquery vs Google Closure va GWT Pros & cons for large web application developmentJquery vs Google Closure va GWT 大型 Web 应用程序开发的优缺点
【发布时间】:2011-12-10 08:49:35
【问题描述】:

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

网站的访问量也可能非常高。

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

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

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

所以请在跨浏览器兼容性、易于理解、代码维护、丰富的 ui 设计支持等方面向我推荐这三个方面的优缺点。

-提前致谢

如果这个问题是重复的,而不仅仅是发布链接。

【问题讨论】:

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


    【解决方案1】:

    我认为这真的取决于您要创建什么样的网站。
    GWT 可能最适合所谓的SOUI(面向服务的 UI)和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 没有太多经验,但它被 Google 大量用于他们的网络应用程序。

    因为我主要使用 GWT,所以这里列出了我能想到的关于 GWT 的优点和缺点:

    优势

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

    缺点

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

    附带说明:随着每个新 GWT 版本在编译时间和代码大小方面的改进,缺点变得不再是问题。 GWT 2.5 应该在这方面有一些非常好的改进。

    总结一下:如果您想开发类似桌面的交互式 Web 应用程序,我认为 GWT 可能是您的最佳选择。
    然而,如果你想开发一个更传统的“web 2.0ish”网站,jQuery/Google Closure 可能是一个更好的解决方案。

    【讨论】:

    • "使用 JS 框架下载整个框架..." 注意:Closure 不是这种情况。它“编译”Javascript 以对其进行混淆、压缩并仅包含您正在使用的内容。
    • 好吧,GWT 2.5 RC1 出来了。这似乎是我们迄今为止最大的版本。来自 Google IO 的会话:pgt.de/2012/07/11/…
    【解决方案2】:

    GWT 为本质上的 JavaScript 开发带来了 Java IDE 的所有优点。与 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 分钟的时间里,为我平淡无奇的基于表格的 UI 提供弹出式图像预览。浏览器在过去 2 年中也不断发展壮大,因此您现在可以在控制台中实时动态调试 JavaScript(Chrome 非常适合这一点,但在 FireFox 和 Safari 中基本相同),以及调整样式和进行各种直接的 DOM 操作。

    JQuery 的好处:直接使用 JavaScript,无需解释和开发人员的思想分享 JQuery 责任:在接近 Java 应用程序级别的任何地方重构 JavaScript 都具有挑战性。

    我的 2 美分值。

    【讨论】:

    • 你知道,我不知道谷歌关闭的愚蠢蹲守。也许它会改变游戏规则,让您更倾向于使用 Google 工具链?
    • 很抱歉,我不能接受多个答案,否则我会将您标记为正确/已接受。
    【解决方案3】:

    与 jQuery 相比,Closure 库的主要优势在于其旨在利用 Closure 编译器(在高级模式下)。您可以获得原始 javascript 的快速编辑/调试周期,以及相当大小的代码库,您的客户只需等待您实际使用的代码(假设您已经编译它)。

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

    【讨论】:

    • 闭包编译器进入 GWT 2.5 并且可以使用动作 RC1 进行测试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 2010-12-05
    • 1970-01-01
    • 2011-01-02
    • 1970-01-01
    • 1970-01-01
    • 2017-09-28
    相关资源
    最近更新 更多