使用Google Web Toolkit和Eclipse Galileo进行高性能Web开发

您以前可能听说过 Google Web Toolkit (GWT),它支持以 Java 编程语言编写 Web 应用程序,然后将 Web 应用程序编译为 JavaScript 以便在 Web 浏览器中运行。这允许通过利用 Java 的静态类型和 Eclipse 之类的出色工具提高生产力。您也许看到过一些构建在 GWT 上的有用的、流行的小部件。有一点您也许不知道,GWT 支持创建高性能 Web 应用程序。

先决条件

本文将查看几个 GWT 特性,以及这些特性如何帮助您构建高性能 Web 应用程序。本文不是一个 GWT 简介,我们假定您拥有 GWT 经验。本文还假定您了解 Java 技术并熟悉 JavaScript、CSS 和 HTML。本文使用 Google Plug-in for Eclipse,使用的版本为 Google Plug-in V1.1 和 Eclipse V3.5 (Galileo)。本文还使用 Firebug plug-in for Mozilla Firefox,使用的版本为 Firebug V1.4.2 和 Firefox V3.5.2。

更快的 JavaScript

GWT 以将 Java 编译为 JavaScript 的能力而著名,支持开发人员开发动态 Web 应用程序。所有代码都编译为 JavaScript,GWT 的许多性能特性的设计目标都是为了使 JavaScript 在浏览器中运行得更快。GWT 中有几个这样的特性,包括特定于浏览器的优化和简化的 Ajax,但多数特性都来自 GWT 的 Java-to-JavaScript 编译器。因此,我们将从这个编译器开始探讨 GWT 的与性能有关的特性。

编译器优化

GWT 编译器将把您的 Java 代码转换为在浏览器中运行的 JavaScript,但它的功能不仅仅是这一点,它还进行大量优化以使您的代码运行更快。然而,要准确理解这些优化的详细过程很困难,因为 GWT 发出的 JavaScript 经过了模糊化,难以阅读。首先,我想指示 GWT 编译器生成一些可以阅读的 JavaScript,这样我们就能更好地理解编译器实施的优化。

GWT 编译器有 3 种运行模式。默认模式是 obfuscated,原因是 GWT 编译器将发出模糊的 JavaScript。这种 JavaScript 不仅难以阅读,它还经过压缩。这使其体积更小,从而能在 Internet 上快速加载。更小的体积也有助于浏览器更快地解析 JavaScript。

您也许会认为在网络上发送经过压缩的 JavaScript 没有什么特别的,因为多数 Web 服务器都使用 gzip 压缩格式发送 JavaScript 且所有现代 Web 浏览器都支持 gzip 格式。但是,GWT 编译器不仅压缩 JavaScript,而且它的压缩方式本质上还支持 gzip 压缩。换句话说,尽管已经经过压缩,GWT 的模糊化的 JavaScript 仍是高度可 gzip 压缩的。这样,如果您的 Web 服务器不使用 gzip,您可以通过使用 GWT 模糊特性获得一个很大的速度提升。但是,即使您的 Web 服务器使用 gzip,您也能从 GWT 模糊特性获得明显的速度提升。

因此,对于生产代码,我们当然希望 GWT 编译器设置为发出模糊 JavaScript。但是,这显然会使发出的 JavaScript 几乎不能被阅读。为了说明这个问题,请查看清单 1 中的一些 GWT 模糊 JavaScript。

清单 1. 模糊化的 JavaScript

function qH(){return np}
function mH(){}
_=mH.prototype=new mu;_.gC=qH;_.tI=0;function 
uH(){uH=ZH;sH={};tH=[];sH[LM]=[Is,Hs,Js];sH[JM]=[rt,qt,st];Xv(tH,yn,LM);Xv(tH,To,JM)}
var sH,tH;function AH(a){a.b=oH(new mH);return a}
function BH(a){var b,c,d,e,f,g,h,i,j,k;g=ox(new cx,MM);f=OA(new FA);j=XH(new 
 VH,NM,OM);KA(f,j.b+sJ+j.c);pw(g.B,PM,true);Zw(gA(QM),f);Zw(gA(RM),g);f.B.focus()
;k=Jg(f.B,NJ).length;k>0&&JA(f,0,k);c=py(new my);Lf((tf(),c.b.B),SM);c.o=true;
b=ox(new cx,TM);b.B.id=UM;i=Py(new Ny);h=Ty(new My);d=UA(new RA);pw(d.B,VM,true);
VA(d,Uy(new My,WM));VA(d,i);VA(d,Uy(new My,XM));VA(d,h);d.b=(kz(),jz);VA(d,b);
Ax(c.j,d);Mx(c);vw(b,FH(new DH,c,g),(sh(),rh));e=KH(new IH,a,g,f,i,h,c,b);
vw(g,e,rh);vw(f,e,(hi(),gi))}
function CH(){return rp}
function xH(){}

幸运的是,可以很容易地 “哄骗” GWT 编译器创建一些人类可读的 JavaScript。这只需向编译器传递一个 -style=PRETTY 参数,使用 Google Plug-in for Eclipse 可以轻松地做到这一点。当您触发一个 GWT 编译时,将显示一个如图 1 所示的对话框。

图 1. GWT 编译器选项

时间: 2024-08-30 22:31:04

使用Google Web Toolkit和Eclipse Galileo进行高性能Web开发的相关文章

Web站点的传输--《构建高性能Web站点》阅读1

1 数据是如何发送的 a 应用程序将要传输的数据放入内存中 b 应用程序使用send等库函数,通知内核将传输数据放入内核缓存区.数据是以队列的形式进入的,如果数据较多,则等前一波数据发送完后,再发送另外一拨数据,具体显示为send会多调用几次 c cpu通知网卡将内核缓冲区的数据存放到网卡缓冲区 d 网卡将数据从字节变为二进制数字信号 e 将二进制数字信号使用光纤或铜线传播   2 带宽是什么,受什么影响 带宽指的是数据的发送速度 100Mbps的网卡指网卡的最大传输速度是100Mbps 带宽受

Google Web Toolkit 教程

受众 这些教程旨在服务于那些希望用Google Web Toolkit编写富AJAX应用程序的开发人员. 虽然这些教程假设你会HTML.CSS以及Java的相关知识,但它们并不是运行这些教程所必需的. 开始之前 在开始这些教程之前,我们假定你已经完成了以下几点: 已经安装了Java SDK. 如果你没有安装最新版本的Java SDK,你可以下载Sun Java Standard Edition SDK. 已经安装了Eclipse或其它你喜爱的Java IDE. 在这些教程中,我们使用的是Ecli

使用Google Web Toolkit、Apache Derby和Eclipse构建Ajax应用程序 1

GWT 使得构建富 Ajax 浏览器客户机界面比构建传统 Java GUI 界面还要轻松.然而,即使是 GWT 这样出色的技术也无法独自构建出一个完整的 Web 应用程序.您还必须有一个服务器上的数据存储和某种类型的框架,以便将数据转换成 GWT 可从服务器传递给其客户的 Java 对象.在这一系列文章中,您将使用 Apache Derby 这个 100% 纯 Java 数据库,可将其嵌入与其余服务器端代码相同的 Java 虚拟机(JVM)之中. 本系列的第一篇文章主要探讨 GWT.在这里,您将

面向 Java 开发人员的 Ajax: Google Web Toolkit 入门

简介: Ajax 被用于创建更加动态和交互性更好的 Web 应用程序.Google Web Toolkit (简称GWT) 是 Google 推出的 Ajax 应用开发包,GWT 支持开发者使用Java 语言开发 Ajax 应用.本文中作者将介绍如何使用 GWT 开发 Ajax 应用的基本方法和步骤. ## Ajax简介 ## Ajax是 Asynchronous JavaScript and XML(以及 DHTML 等)的缩写,由XHTML.CSS.JavaScript.XMLHttpReq

面向 Java 开发人员的 Ajax: 探索 Google Web Toolkit

ajax|google|web GWT(请参阅 参考资料)采用了一种不寻常的方式进行 Web 应用程序开发.它没有采用客户端和服务器端代码库的普通隔离,而是提供了一个 Java API,该 API 允许创建基于组件的 GUI,然后编译它们,从而在用户的 Web 浏览器上显示它们. 与一般的 Web 应用程序开发体验相比,使用 GWT 更接近于使用 Swing 或 SWT 进行开发,它还试图将 HTTP 协议和 HTML DOM 模型抽象出去.实际上,应用程序最终几乎总是会呈现在 Web 浏览器中

面向Java开发人员的Ajax:Google Web Toolkit入门

Ajax简介 Ajax是 Asynchronous JavaScript and XML(以及 DHTML 等)的缩写,由XHTML.CSS.JavaScript.XMLHttpRequest.XML等技术组合而成,是当前Web应用开发领域的热门技术,用于创建更加动态和交互性更好的Web应用程序,提升用户的浏览体验. Ajax的核心是JavaScript对象XmlHttpRequest.XmlHttpRequest处理所有服务器通信的对象,是一种支持异步请求的技术.简而言之,XmlHttpReq

Google Web Toolkit框架简介

Google Web Toolkit(GWT)是一个开源 Java 软件开发框架,旨在帮助那些不甚精通浏览器的开发人员更容易地编写 Web 2.0 应用程序,即通过 AJAX 编写异步 web 应用程序,请参阅 Google Web Toolkit 站点.现在,编写动态 web 应用程序是一个单调乏味且容易出错的过程,需要花费 90% 的时间来处理 web 浏览器与平台之间细微的不兼容性,而且由于 JavaScript 不具有模块性,所以很难共享.测试和重用 AJAX 组件.GWT 不但克服了这

面向Java开发人员的Ajax:探索 Google Web Toolkit

最近发布的 Google Web Toolkit (GWT) 是一组全面的 API 和工具,它支持用户几乎完全使用 Java 代码来创建动态 Web 应用程序.Philip McCarthy 回到了他广受欢迎的面向 Java 开发人员的 Ajax 系列,向您展示 GWT 能做什么,并帮助您确定它是否适合您. GWT(请参阅 参考资料)采用了一种不寻常的方式进行 Web 应用程序开发.它没有采用客户端和服务器端代码库的普通隔离,而是提供了一个 Java API,该 API 允许创建基于组件的 GU

使用Google Web Toolkit和JSON开发Ajax应用程序

Google Web Toolkit 和 JSON 简介 Google Web Toolkit(GWT)是一套用来开发 Ajax 程序的工具,它支持开发者使用 Java 代码来创建 Ajax 的应用程序. JSON (JavaScript Object Notation)是一种轻量级的数据交换格式.它是一种完全和语言无关的文本格式.同时由于 JSON 是 JavaScript 的对象文字符号的子集,所以在 Ajax 开发中,经常用来作为客户端和服务器端数据交换的标准格式. 本文将关注如何使用 G