【问题标题】:Do enterprise GWT apps require extra client-server transfers?企业 GWT 应用程序是否需要额外的客户端-服务器传输?
【发布时间】:2015-08-07 15:37:19
【问题描述】:

我正在尝试决定是使用 GWT 还是手动编写的 JavaScript。如果我使用常规 JavaScript,Java 应用程序的工作方式如下:

  1. 客户端访问一个 URL,服务器执行一个 servlet。
  2. servlet 查询数据库并将数据转发到 JSP。
  3. JSP 中的 JavaScript 在表格中显示数据。

根据我的read,当您使用 GWT 时,流程会发生变化:

  1. 客户端访问一个 URL,服务器提供一个带有 GWT 生成的 JavaScript 的页面。
  2. 生成的 JavaScript 创建一个表并使用 GWT-RPC 告诉 servlet 提供数据。
  3. servlet 查询数据库并将数据返回给 JavaScript,JavaScript 将数据显示在表格中。

在第二个过程中,客户端访问服务器两次:一次访问 URL,一次告诉 servlet 提供数据。我知道第二部分是异步执行的,但它似乎仍然非常低效。我确定我遗漏了一些基本的东西,我希望有人能纠正我。

【问题讨论】:

    标签: java servlets gwt


    【解决方案1】:

    好的,让我们从效率的角度来看看这个。

    是的,对于您描述的简单情况,客户可能需要稍等片刻。

    不过,就开发有用的网站而言,您很可能会进行身份验证并希望从页面中间进行 ajax 调用。您可能还想根据用户输入进行布局更改,这在 jsp 页面中是不切实际且混乱的。

    过去,手动编写的 javascript 在不同的浏览器中运行也完全不同,这对于 GWT 为特定浏览器编译不同版本是一件好事。今天可能不是这样,但如果您需要定位多个浏览器,则应考虑浏览器差异。

    所以我在效率方面的回答是,对于最简单的情况,没有 GWT 并不是最有效的,但是如果您需要制作更复杂的 Web 应用程序并希望避免浏览器问题,那么使用 Java 进行开发会更容易并且维护更简单。

    实际上,我在第一次调用时返回了一个 .jsp 页面,然后 GWT javascript 从那里被引导(而不是使用 html 页面)。没有任何真正的原因您不能在 jsp 页面中包含您想要的任何数据,除非您的要求如此简单,请保持这种方式,以确保引导 GWT 代码会产生一些成本。就我而言,我需要先进行身份验证,然后返回的数据取决于他们的凭据,然后根据用户需要的信息进行大量的 ajax 调用。手动使用 javascript 开发将是一场噩梦。

    【讨论】:

      【解决方案2】:

      GWT 编译器生成的 java 脚本缓存在客户端,因此当您第一次访问应用程序时,您会发现与纯 java 脚本相比,它需要一些时间。但是,如果您再次尝试访问它,您将不会在加载页面时看到性能问题。

      在这两种情况下,您都会访问服务器两次。第一个请求是加载视图,第二个请求是从服务器获取数据。

      GWT 不适合简单的应用。主要用于企业应用。

      GWT 编译器生成的 java 脚本处理了大多数浏览器的复杂性,而这些复杂性在普通的 java 脚本代码中很难维护。

      【讨论】:

        猜你喜欢
        • 2019-09-15
        • 1970-01-01
        • 2015-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-20
        • 1970-01-01
        相关资源
        最近更新 更多