当前位置: 代码迷 >> java >> 企业GWT应用程序是否需要额外的客户端-服务器传输?
  详细解决方案

企业GWT应用程序是否需要额外的客户端-服务器传输?

热度:26   发布时间:2023-07-25 19:49:39.0

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

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

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

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

在第二个过程中,客户端两次访问服务器:一次访问URL,一次告诉servlet提供数据。 我知道第二部分是异步执行的,但效率似乎仍然很低。 我确定我缺少基本的东西,希望有人能使我挺直。

好,让我们从效率的角度来看一下。

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

但是,就开发有用的网站而言,您很可能会进行身份验证,并希望从页面的中间进行ajax调用。 您也可能希望基于用户输入来进行布局更改,而在jsp页面中这样做是不切实际且麻烦的。

手动编写的javascript过去在不同的浏览器中也可以以完全不同的方式运行,这对于GWT为特定的浏览器编译不同的版本来说是一件好事。 今天可能并非如此,但如果您需要定位多个目标,则应考虑使用浏览器。

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

我实际上是在第一次调用时返回一个.jsp页面,然后从那里引导GWT javascript(而不是使用html页面)。 没有任何真正的原因不能在jsp页面中包含所需的任何数据,只是如果您的要求如此简单,请以这种方式进行操作,以确保引导GWT代码会产生一定的成本。 在我的情况下,我需要先进行身份验证,然后返回的数据取决于其凭据,然后取决于用户所需的信息来加载ajax调用。 用javascript手工开发将是一场噩梦。

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

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

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

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

  相关解决方案